{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Feather","colors":{"primary":"#0A0A0A","light":"#FFFFFF","dark":"#0A0A0A"},"favicon":"https://mintcdn.com/featherfinancialinc-da9b2ba2/I0ek9b03bgatx_0S/favicon.png?fit=max\u0026auto=format\u0026n=I0ek9b03bgatx_0S\u0026q=85\u0026s=4c66a86d2127a7a37b5671bdf39c748a","appearance":{"default":"system"},"background":{"decoration":"gradient"},"navbar":{"primary":{"type":"button","label":"Get API Access","href":"https://featherhq.com"}},"styling":{"eyebrows":"breadcrumbs","codeblocks":"dark","latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"featherfinancialinc-da9b2ba2","hasAudioNarration":false,"actualSubdomain":"featherfinancialinc-da9b2ba2","customDomains":["doc.featherhq.com"],"gitSource":{"type":"github","owner":"oneloop-hq","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"collectionId":"5fd44102-05e6-4170-b0a7-8768ee24dc2b","liveDeploymentHistoryId":"6a7c1dd1a93a8291fc1c81b8","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6a7c1dd1a93a8291fc1c81b8"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6a7c1dd1a93a8291fc1c81b8:success","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API Reference","count":617},{"language":"default","tag":"analytics","count":110},{"language":"default","tag":"assistants","count":41},{"language":"default","tag":"voice","count":40},{"language":"default","tag":"knowledge-base","count":29},{"language":"default","tag":"identity","count":28},{"language":"default","tag":"Documentation","count":26},{"language":"default","tag":"policies","count":22},{"language":"default","tag":"workflows","count":22},{"language":"default","tag":"evals","count":19}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"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":"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/assistants/resolve-inherited-and-node-local-tools-for-a-revisions-flow","slug":"/api-reference/assistants/resolve-inherited-and-node-local-tools-for-a-revisions-flow","pageMetadata":{"title":"Resolve inherited and node-local tools for a revision's flow","description":"Return the backend-owned effective surface with provenance for every AgentNode.\n\nFree revision model: resolved for the specific revision addressed in the path.\nThe client performs no inheritance or precedence logic of its own.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/revisions/{revision_id}/effective-tool-surface","href":"/api-reference/assistants/resolve-inherited-and-node-local-tools-for-a-revisions-flow","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 p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Return the backend-owned effective surface with provenance for every AgentNode.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Free revision model: resolved for the specific revision addressed in the path.\\nThe client performs no inheritance or precedence logic of its own.\"\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":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Resolve inherited and node-local tools for a revision's flow","description":"Return the backend-owned effective surface with provenance for every AgentNode.\n\nFree revision model: resolved for the specific revision addressed in the path.\nThe client performs no inheritance or precedence logic of its own.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/revisions/{revision_id}/effective-tool-surface","href":"/api-reference/assistants/resolve-inherited-and-node-local-tools-for-a-revisions-flow","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["assistants"],"summary":"Resolve inherited and node-local tools for a revision's flow","description":"Return the backend-owned effective surface with provenance for every AgentNode.\n\nFree revision model: resolved for the specific revision addressed in the path.\nThe client performs no inheritance or precedence logic of its own.","operationId":"getAssistantEffectiveToolSurface","security":["865ef029-469e-417c-bc75-b7880aaf0078"],"parameters":["a21be2a7-85d7-411b-92f6-fd108b1c3c98","bc26031c-3808-4c6a-b7c3-6469cffe5174"],"responses":{"200":"813705b8-ff0e-4fa3-94df-50dcdc6e5a1f","422":"e029dc7c-23b7-4aca-8c23-24b359b9bc58"},"method":"get","type":"path","servers":["9eb6538d-bcbe-45cd-b596-552ff3c55c6d","86cb313e-00e6-40d9-8a85-58b030b50886"],"path":"/v1/assistants/{agent_id}/revisions/{revision_id}/effective-tool-surface","baseUrlOptions":["https://api-sandbox.featherhq.com","http://localhost:8000"],"title":"Resolve inherited and node-local tools for a revision's flow","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"a21be2a7-85d7-411b-92f6-fd108b1c3c98":{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"}},"bc26031c-3808-4c6a-b7c3-6469cffe5174":{"name":"revision_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Revision Id","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"responses":{"813705b8-ff0e-4fa3-94df-50dcdc6e5a1f":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"revision_id":{"type":"string","format":"uuid","title":"Revision Id","isRequired":true,"uniqueKey":"revision_id","typeLabel":"string\u003cuuid>"},"workflow_revision_id":{"oneOf":[{"type":"string","title":"Workflow Revision Id","format":"uuid","uniqueKey":"workflow_revision_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","title":"Workflow Revision Id","uniqueKey":"workflow_revision_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"workflow_revision_id","typeLabel":"string\u003cuuid> | null"},"graph_version":{"type":"integer","title":"Graph Version","default":0,"uniqueKey":"graph_version","typeLabel":"integer"},"utility_catalog":{"items":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"utility_catalog.items.[INDEX].name","typeLabel":"string"},"canonical_key":{"type":"string","title":"Canonical Key","isRequired":true,"uniqueKey":"utility_catalog.items.[INDEX].canonical_key","typeLabel":"string"},"display_name":{"oneOf":[{"type":"string","title":"Display Name","uniqueKey":"utility_catalog.items.[INDEX].display_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Display Name","uniqueKey":"utility_catalog.items.[INDEX].display_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"utility_catalog.items.[INDEX].display_name","typeLabel":"string | null"},"description":{"type":"string","title":"Description","default":"","uniqueKey":"utility_catalog.items.[INDEX].description","typeLabel":"string"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters","uniqueKey":"utility_catalog.items.[INDEX].parameters","typeLabel":"Parameters · object"}},"type":"object","required":["name","canonical_key"],"title":"UtilityCatalogEntry","description":"One selectable utility definition, independent of any effective surface.\n\nCatalog entries describe what may be selected. They deliberately carry no provenance,\nlock state, dynamic state, or selection sources because those concepts exist only after\na capability has been selected into an assistant or node surface.","uniqueKey":"utility_catalog.items.[INDEX]","typeLabel":"UtilityCatalogEntry · object"},"type":"array","title":"Utility Catalog","uniqueKey":"utility_catalog","typeLabel":"UtilityCatalogEntry · object[]"},"assistant_tools":{"items":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"assistant_tools.items.[INDEX].name","typeLabel":"string"},"provenance":{"type":"string","enum":["util","platform","ambient","node","runtime"],"title":"Provenance","isRequired":true,"uniqueKey":"assistant_tools.items.[INDEX].provenance","typeLabel":"enum\u003cstring>"},"locked":{"type":"boolean","title":"Locked","isRequired":true,"uniqueKey":"assistant_tools.items.[INDEX].locked","typeLabel":"boolean"},"canonical_key":{"oneOf":[{"type":"string","title":"Canonical Key","uniqueKey":"assistant_tools.items.[INDEX].canonical_key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Canonical Key","uniqueKey":"assistant_tools.items.[INDEX].canonical_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"assistant_tools.items.[INDEX].canonical_key","typeLabel":"string | null"},"display_name":{"oneOf":[{"type":"string","title":"Display Name","uniqueKey":"assistant_tools.items.[INDEX].display_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Display Name","uniqueKey":"assistant_tools.items.[INDEX].display_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"assistant_tools.items.[INDEX].display_name","typeLabel":"string | null"},"mentionable":{"type":"boolean","title":"Mentionable","default":false,"uniqueKey":"assistant_tools.items.[INDEX].mentionable","typeLabel":"boolean"},"description":{"type":"string","title":"Description","default":"","uniqueKey":"assistant_tools.items.[INDEX].description","typeLabel":"string"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters","uniqueKey":"assistant_tools.items.[INDEX].parameters","typeLabel":"Parameters · object"},"dynamic":{"type":"boolean","title":"Dynamic","default":false,"uniqueKey":"assistant_tools.items.[INDEX].dynamic","typeLabel":"boolean"},"selection_sources":{"items":{"type":"string","enum":["assistant_mention","node_mention","node_attachment"],"uniqueKey":"assistant_tools.items.[INDEX].selection_sources.items.[INDEX]","typeLabel":"enum\u003cstring>"},"type":"array","title":"Selection Sources","uniqueKey":"assistant_tools.items.[INDEX].selection_sources","typeLabel":"enum\u003cstring>[]"}},"type":"object","required":["name","provenance","locked"],"title":"EffectiveToolSurfaceEntry","description":"One model-callable capability after all inheritance/dedup rules are applied.","uniqueKey":"assistant_tools.items.[INDEX]","typeLabel":"EffectiveToolSurfaceEntry · object"},"type":"array","title":"Assistant Tools","uniqueKey":"assistant_tools","typeLabel":"EffectiveToolSurfaceEntry · object[]"},"nodes":{"items":{"properties":{"node_id":{"type":"string","title":"Node Id","isRequired":true,"uniqueKey":"nodes.items.[INDEX].node_id","typeLabel":"string"},"tools":{"items":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"nodes.items.[INDEX].tools.items.[INDEX].name","typeLabel":"string"},"provenance":{"type":"string","enum":["util","platform","ambient","node","runtime"],"title":"Provenance","isRequired":true,"uniqueKey":"nodes.items.[INDEX].tools.items.[INDEX].provenance","typeLabel":"enum\u003cstring>"},"locked":{"type":"boolean","title":"Locked","isRequired":true,"uniqueKey":"nodes.items.[INDEX].tools.items.[INDEX].locked","typeLabel":"boolean"},"canonical_key":{"oneOf":[{"type":"string","title":"Canonical Key","uniqueKey":"nodes.items.[INDEX].tools.items.[INDEX].canonical_key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Canonical Key","uniqueKey":"nodes.items.[INDEX].tools.items.[INDEX].canonical_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"nodes.items.[INDEX].tools.items.[INDEX].canonical_key","typeLabel":"string | null"},"display_name":{"oneOf":[{"type":"string","title":"Display Name","uniqueKey":"nodes.items.[INDEX].tools.items.[INDEX].display_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Display Name","uniqueKey":"nodes.items.[INDEX].tools.items.[INDEX].display_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"nodes.items.[INDEX].tools.items.[INDEX].display_name","typeLabel":"string | null"},"mentionable":{"type":"boolean","title":"Mentionable","default":false,"uniqueKey":"nodes.items.[INDEX].tools.items.[INDEX].mentionable","typeLabel":"boolean"},"description":{"type":"string","title":"Description","default":"","uniqueKey":"nodes.items.[INDEX].tools.items.[INDEX].description","typeLabel":"string"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters","uniqueKey":"nodes.items.[INDEX].tools.items.[INDEX].parameters","typeLabel":"Parameters · object"},"dynamic":{"type":"boolean","title":"Dynamic","default":false,"uniqueKey":"nodes.items.[INDEX].tools.items.[INDEX].dynamic","typeLabel":"boolean"},"selection_sources":{"items":{"type":"string","enum":["assistant_mention","node_mention","node_attachment"],"uniqueKey":"nodes.items.[INDEX].tools.items.[INDEX].selection_sources.items.[INDEX]","typeLabel":"enum\u003cstring>"},"type":"array","title":"Selection Sources","uniqueKey":"nodes.items.[INDEX].tools.items.[INDEX].selection_sources","typeLabel":"enum\u003cstring>[]"}},"type":"object","required":["name","provenance","locked"],"title":"EffectiveToolSurfaceEntry","description":"One model-callable capability after all inheritance/dedup rules are applied.","uniqueKey":"nodes.items.[INDEX].tools.items.[INDEX]","typeLabel":"EffectiveToolSurfaceEntry · object"},"type":"array","title":"Tools","uniqueKey":"nodes.items.[INDEX].tools","typeLabel":"EffectiveToolSurfaceEntry · object[]"}},"type":"object","required":["node_id"],"title":"EffectiveNodeToolSurface","uniqueKey":"nodes.items.[INDEX]","typeLabel":"EffectiveNodeToolSurface · object"},"type":"array","title":"Nodes","uniqueKey":"nodes","typeLabel":"EffectiveNodeToolSurface · object[]"}},"type":"object","required":["revision_id"],"title":"EffectiveToolSurfaceResponse","description":"Backend-resolved per-AgentNode authoring surface for one assistant revision.","uniqueKey":"","typeLabel":"EffectiveToolSurfaceResponse · object"},"examples":{"Example":{"title":"Example","value":{"revision_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","workflow_revision_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","graph_version":0,"utility_catalog":[{"name":"\u003cstring>","canonical_key":"\u003cstring>","display_name":"\u003cstring>","description":"","parameters":{}}],"assistant_tools":[{"name":"\u003cstring>","provenance":"util","locked":true,"canonical_key":"\u003cstring>","display_name":"\u003cstring>","mentionable":false,"description":"","parameters":{},"dynamic":false,"selection_sources":["assistant_mention"]}],"nodes":[{"node_id":"\u003cstring>","tools":[{"name":"\u003cstring>","provenance":"util","locked":true,"canonical_key":"\u003cstring>","display_name":"\u003cstring>","mentionable":false,"description":"","parameters":{},"dynamic":false,"selection_sources":["assistant_mention"]}]}]}}},"exampleType":"generated"}},"exampleType":"generated"},"e029dc7c-23b7-4aca-8c23-24b359b9bc58":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"oneOf":[{"type":"string","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string | integer"},"type":"array","title":"Location","isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"type":"string","title":"Message","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"type":"string","title":"Error Type","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"},"input":{"oneOf":[{"title":"Input"}],"uniqueKey":"detail.items.[INDEX].input","typeLabel":"any"},"ctx":{"type":"object","title":"Context","uniqueKey":"detail.items.[INDEX].ctx","typeLabel":"Context · object"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError","uniqueKey":"detail.items.[INDEX]","typeLabel":"ValidationError · object"},"type":"array","title":"Detail","uniqueKey":"detail","typeLabel":"ValidationError · object[]"}},"type":"object","title":"HTTPValidationError","uniqueKey":"","typeLabel":"HTTPValidationError · object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>","input":"\u003cunknown>","ctx":{}}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"865ef029-469e-417c-bc75-b7880aaf0078":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[]}}},"servers":{"9eb6538d-bcbe-45cd-b596-552ff3c55c6d":{"url":"https://api-sandbox.featherhq.com","description":"Sandbox"},"86cb313e-00e6-40d9-8a85-58b030b50886":{"url":"http://localhost:8000","description":"Local dev"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[]},"schema":{"title":"x-api-key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"APIKeyHeader","name":"x-api-key"}],"title":"APIKeyHeader"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"featherfinancialinc-da9b2ba2","siteName":"Feather","title":"Resolve inherited and node-local tools for a revision's flow - Feather","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-12T07:01:24.627Z","originalFileLocation":"api-reference/assistants/resolve-inherited-and-node-local-tools-for-a-revisions-flow.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=\"Return the backend-owned effective surface with provenance for every AgentNode. Free revision model: resolved for the specific revision addressed in the path. The client performs no inheritance or precedence logic of its own.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Feather\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/featherfinancialinc-da9b2ba2/NHQSC3iVqRDl3RD0/_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/featherfinancialinc-da9b2ba2/NHQSC3iVqRDl3RD0/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/featherfinancialinc-da9b2ba2/NHQSC3iVqRDl3RD0/_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/featherfinancialinc-da9b2ba2/NHQSC3iVqRDl3RD0/_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/featherfinancialinc-da9b2ba2/NHQSC3iVqRDl3RD0/_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/featherfinancialinc-da9b2ba2/NHQSC3iVqRDl3RD0/_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/featherfinancialinc-da9b2ba2/NHQSC3iVqRDl3RD0/_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/featherfinancialinc-da9b2ba2/NHQSC3iVqRDl3RD0/_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/featherfinancialinc-da9b2ba2/NHQSC3iVqRDl3RD0/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Resolve inherited and node-local tools for a revision\u0026#x27;s flow - Feather\">\u003cmeta data-mint-head property=\"og:description\" content=\"Return the backend-owned effective surface with provenance for every AgentNode. Free revision model: resolved for the specific revision addressed in the path. The client performs no inheritance or precedence logic of its own.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Feather\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://doc.featherhq.com/api-reference/assistants/resolve-inherited-and-node-local-tools-for-a-revisions-flow\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://featherfinancialinc-da9b2ba2.mintlify.app/_mintlify/api/og/v2?division=assistants\u0026amp;title=Resolve+inherited+and+node-local+tools+for+a+revision%27s+flow\u0026amp;description=Return+the+backend-owned+effective+surface+with+provenance+for+every+AgentNode.%0A%0AFree+revision+model%3A+resolved+for+the+specific+revision+addressed+in+the+path.%0A\u0026amp;theme=37ebd49a038e282ac45bee7c\u0026amp;signature=abdea6a1c18fd36f47d8bd434d9b59ec7c57d50cecaf6bef9d0ae3e5caebe3cf\">\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=\"Resolve inherited and node-local tools for a revision\u0026#x27;s flow - Feather\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Return the backend-owned effective surface with provenance for every AgentNode. Free revision model: resolved for the specific revision addressed in the path. The client performs no inheritance or precedence logic of its own.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://featherfinancialinc-da9b2ba2.mintlify.app/_mintlify/api/og/v2?division=assistants\u0026amp;title=Resolve+inherited+and+node-local+tools+for+a+revision%27s+flow\u0026amp;description=Return+the+backend-owned+effective+surface+with+provenance+for+every+AgentNode.%0A%0AFree+revision+model%3A+resolved+for+the+specific+revision+addressed+in+the+path.%0A\u0026amp;theme=37ebd49a038e282ac45bee7c\u0026amp;signature=abdea6a1c18fd36f47d8bd434d9b59ec7c57d50cecaf6bef9d0ae3e5caebe3cf\">\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/featherfinancialinc-da9b2ba2/NHQSC3iVqRDl3RD0/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Feather\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0A0A0A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://doc.featherhq.com/api-reference/assistants/resolve-inherited-and-node-local-tools-for-a-revisions-flow\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/assistants/resolve-inherited-and-node-local-tools-for-a-revisions-flow.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://doc.featherhq.com/#organization\",\"name\":\"Feather\",\"url\":\"https://doc.featherhq.com\"},{\"@type\":\"WebSite\",\"@id\":\"https://doc.featherhq.com#website\",\"name\":\"Feather\",\"url\":\"https://doc.featherhq.com\",\"publisher\":{\"@id\":\"https://doc.featherhq.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://doc.featherhq.com/api-reference/assistants/resolve-inherited-and-node-local-tools-for-a-revisions-flow#webpage\",\"url\":\"https://doc.featherhq.com/api-reference/assistants/resolve-inherited-and-node-local-tools-for-a-revisions-flow\",\"name\":\"Resolve inherited and node-local tools for a revision's flow\",\"description\":\"Return the backend-owned effective surface with provenance for every AgentNode. Free revision model: resolved for the specific revision addressed in the path. The client performs no inheritance or precedence logic of its own.\",\"dateModified\":\"2026-08-12T07:01:24.627Z\",\"isPartOf\":{\"@id\":\"https://doc.featherhq.com#website\"},\"breadcrumb\":{\"@id\":\"https://doc.featherhq.com/api-reference/assistants/resolve-inherited-and-node-local-tools-for-a-revisions-flow#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://doc.featherhq.com/api-reference/assistants/resolve-inherited-and-node-local-tools-for-a-revisions-flow#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"assistants\",\"item\":\"https://doc.featherhq.com/api-reference/assistants/list-assistants-cursor-paginated\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Resolve inherited and node-local tools for a revision's flow\",\"item\":\"https://doc.featherhq.com/api-reference/assistants/resolve-inherited-and-node-local-tools-for-a-revisions-flow\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://doc.featherhq.com/api-reference/assistants/resolve-inherited-and-node-local-tools-for-a-revisions-flow#apireference\",\"headline\":\"Resolve inherited and node-local tools for a revision's flow\",\"name\":\"Resolve inherited and node-local tools for a revision's flow\",\"description\":\"Return the backend-owned effective surface with provenance for every AgentNode. Free revision model: resolved for the specific revision addressed in the path. The client performs no inheritance or precedence logic of its own.\",\"url\":\"https://doc.featherhq.com/api-reference/assistants/resolve-inherited-and-node-local-tools-for-a-revisions-flow\",\"mainEntityOfPage\":{\"@id\":\"https://doc.featherhq.com/api-reference/assistants/resolve-inherited-and-node-local-tools-for-a-revisions-flow#webpage\"},\"dateModified\":\"2026-08-12T07:01:24.627Z\",\"publisher\":{\"@id\":\"https://doc.featherhq.com/#organization\"},\"isPartOf\":{\"@id\":\"https://doc.featherhq.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Feather\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Feather","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"identity","pages":[{"title":"Get the current caller's identity, role, and KB clearance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/identity/whoami","href":"/api-reference/identity/get-the-current-callers-identity-role-and-kb-clearance"},{"title":"Get current organization","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/identity/org","href":"/api-reference/identity/get-current-organization"},{"title":"Update current organization","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/identity/org","href":"/api-reference/identity/update-current-organization"},{"title":"Get the org-level memory toggle","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/identity/org/memory","href":"/api-reference/identity/get-the-org-level-memory-toggle"},{"title":"Enable/disable all memory recall and ingestion for the org","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/identity/org/memory","href":"/api-reference/identity/enabledisable-all-memory-recall-and-ingestion-for-the-org"},{"title":"Get the org-level post-call extraction toggle","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/identity/org/post-session-extraction","href":"/api-reference/identity/get-the-org-level-post-call-extraction-toggle"},{"title":"Enable/disable post-call structured extraction for the org","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/identity/org/post-session-extraction","href":"/api-reference/identity/enabledisable-post-call-structured-extraction-for-the-org"},{"title":"Get the org's warm-transfer settings (bridge webhook URL)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/identity/org/warm-transfer","href":"/api-reference/identity/get-the-orgs-warm-transfer-settings-bridge-webhook-url"},{"title":"List the org's warm-transfer bridge numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/identity/org/bridge-numbers","href":"/api-reference/identity/list-the-orgs-warm-transfer-bridge-numbers"},{"title":"Import a Twilio number as a warm-transfer bridge number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/identity/org/bridge-numbers","href":"/api-reference/identity/import-a-twilio-number-as-a-warm-transfer-bridge-number"},{"title":"Delete a bridge number (clears its Twilio webhook, then drops the row)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/identity/org/bridge-numbers/{bridge_number_id}","href":"/api-reference/identity/delete-a-bridge-number-clears-its-twilio-webhook-then-drops-the-row"},{"title":"Re-apply the current /twilio/{org_id}/bridge webhook URL to all bridge numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/identity/org/bridge-numbers/reprovision","href":"/api-reference/identity/re-apply-the-current-twilio-bridge-webhook-url-to-all-bridge-numbers"},{"title":"List organization members","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/identity/org/members","href":"/api-reference/identity/list-organization-members"},{"title":"Look up an end user by channel + external_id (read-only, no mutation)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/identity/resolve","href":"/api-reference/identity/look-up-an-end-user-by-channel-+-external_id-read-only-no-mutation"},{"title":"Resolve a channel source to an end user (upsert — creates if not found)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/identity/resolve","href":"/api-reference/identity/resolve-a-channel-source-to-an-end-user-upsert-—-creates-if-not-found"},{"title":"List end users for the organization (optionally filter by org_external_end_user_id)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/identity/end-users","href":"/api-reference/identity/list-end-users-for-the-organization-optionally-filter-by-org_external_end_user_id"},{"title":"Get an end user with their contacts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/identity/end-users/{end_user_id}","href":"/api-reference/identity/get-an-end-user-with-their-contacts"},{"title":"Update an end user (merge-on-conflict requires ?allow_merge=true)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/identity/end-users/{end_user_id}","href":"/api-reference/identity/update-an-end-user-merge-on-conflict-requires-?allow_merge=true"},{"title":"Delete an end user and all associated data","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/identity/end-users/{end_user_id}","href":"/api-reference/identity/delete-an-end-user-and-all-associated-data"},{"title":"Attach a verified contact to an end user","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/identity/end-users/{end_user_id}/contacts","href":"/api-reference/identity/attach-a-verified-contact-to-an-end-user"},{"title":"List identity review requests for the organization","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/identity/review-requests","href":"/api-reference/identity/list-identity-review-requests-for-the-organization"},{"title":"Get a single identity review request","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/identity/review-requests/{request_id}","href":"/api-reference/identity/get-a-single-identity-review-request"},{"title":"Approve a MERGE review request and execute the merge","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/identity/review-requests/{request_id}/approve-merge","href":"/api-reference/identity/approve-a-merge-review-request-and-execute-the-merge"},{"title":"Approve an UPDATE review request and add the proposed contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/identity/review-requests/{request_id}/approve-update","href":"/api-reference/identity/approve-an-update-review-request-and-add-the-proposed-contact"},{"title":"Reject a review request","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/identity/review-requests/{request_id}/reject","href":"/api-reference/identity/reject-a-review-request"},{"title":"List API keys for the current organization","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/identity/api-keys","href":"/api-reference/identity/list-api-keys-for-the-current-organization"},{"title":"Create an API key. The plain-text key is returned exactly once.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/identity/api-keys","href":"/api-reference/identity/create-an-api-key-the-plain-text-key-is-returned-exactly-once"},{"title":"Revoke an API key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/identity/api-keys/{key_id}","href":"/api-reference/identity/revoke-an-api-key"}]},{"group":"sessions","pages":[{"title":"Fetch the canonical analysis input for a completed session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sessions/{session_id}/analysis-input","href":"/api-reference/sessions/fetch-the-canonical-analysis-input-for-a-completed-session"}]},{"group":"retention-policies","pages":[{"title":"List retention policies","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/retention-policies","href":"/api-reference/retention-policies/list-retention-policies"},{"title":"Create a retention policy","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/retention-policies","href":"/api-reference/retention-policies/create-a-retention-policy"},{"title":"Update a retention policy","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/retention-policies/{policy_id}","href":"/api-reference/retention-policies/update-a-retention-policy"},{"title":"Delete a retention policy","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/retention-policies/{policy_id}","href":"/api-reference/retention-policies/delete-a-retention-policy"}]},{"group":"conversation-exports","pages":[{"title":"List this org's conversation export jobs (newest first)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations/exports","href":"/api-reference/conversation-exports/list-this-orgs-conversation-export-jobs-newest-first"},{"title":"Request an async encrypted conversation/session export","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/conversations/exports","href":"/api-reference/conversation-exports/request-an-async-encrypted-conversationsession-export"},{"title":"Get a conversation export job's status + per-file download tokens","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations/exports/{export_id}","href":"/api-reference/conversation-exports/get-a-conversation-export-jobs-status-+-per-file-download-tokens"},{"title":"Server-mediated, decrypted download of one export file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations/exports/{export_id}/download/{file_name}","href":"/api-reference/conversation-exports/server-mediated-decrypted-download-of-one-export-file"}]},{"group":"memory","pages":[{"title":"Get all stored facts for a user","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/memory/users/{end_user_id}","href":"/api-reference/memory/get-all-stored-facts-for-a-user"},{"title":"Purge a user's derived memory","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/memory/users/{end_user_id}","href":"/api-reference/memory/purge-a-users-derived-memory"},{"title":"Get one session's memory ingestion outcome and attributed facts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/memory/sessions/{session_id}/memories","href":"/api-reference/memory/get-one-sessions-memory-ingestion-outcome-and-attributed-facts"},{"title":"Delete one stored memory fact for a user","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/memory/users/{end_user_id}/facts/{fact_id}","href":"/api-reference/memory/delete-one-stored-memory-fact-for-a-user"}]},{"group":"knowledge-base","pages":[{"title":"Get available KB configuration options","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/config","href":"/api-reference/knowledge-base/get-available-kb-configuration-options"},{"title":"List knowledge bases","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/knowledge-bases","href":"/api-reference/knowledge-base/list-knowledge-bases"},{"title":"Create a knowledge base","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/knowledge-bases","href":"/api-reference/knowledge-base/create-a-knowledge-base"},{"title":"Get a knowledge base","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/knowledge-bases/{kb_id}","href":"/api-reference/knowledge-base/get-a-knowledge-base"},{"title":"Update a knowledge base","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/knowledge-base/knowledge-bases/{kb_id}","href":"/api-reference/knowledge-base/update-a-knowledge-base"},{"title":"Delete a knowledge base","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/knowledge-base/knowledge-bases/{kb_id}","href":"/api-reference/knowledge-base/delete-a-knowledge-base"},{"title":"Get aggregate ingestion status for a knowledge base","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/knowledge-bases/{kb_id}/ingestion-status","href":"/api-reference/knowledge-base/get-aggregate-ingestion-status-for-a-knowledge-base"},{"title":"List documents in a knowledge base","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/knowledge-bases/{kb_id}/documents","href":"/api-reference/knowledge-base/list-documents-in-a-knowledge-base"},{"title":"Get a document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/documents/{doc_id}","href":"/api-reference/knowledge-base/get-a-document"},{"title":"Delete a document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/knowledge-base/documents/{doc_id}","href":"/api-reference/knowledge-base/delete-a-document"},{"title":"Update a document's title and/or metadata","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/knowledge-base/documents/{doc_id}","href":"/api-reference/knowledge-base/update-a-documents-title-andor-metadata"},{"title":"Get a document's sensitivity classification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/documents/{doc_id}/classification","href":"/api-reference/knowledge-base/get-a-documents-sensitivity-classification"},{"title":"Manually correct a document's sensitivity classification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/knowledge-base/documents/{doc_id}/classification","href":"/api-reference/knowledge-base/manually-correct-a-documents-sensitivity-classification"},{"title":"Approve a document's pending classification","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/documents/{doc_id}/classification/approve","href":"/api-reference/knowledge-base/approve-a-documents-pending-classification"},{"title":"List documents awaiting classification review","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/knowledge-bases/{kb_id}/classification/pending","href":"/api-reference/knowledge-base/list-documents-awaiting-classification-review"},{"title":"Re-run sensitivity classification across a KB's documents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/knowledge-bases/{kb_id}/reclassify","href":"/api-reference/knowledge-base/re-run-sensitivity-classification-across-a-kbs-documents"},{"title":"Ingest documents (text, files, or mixed)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/knowledge-bases/{kb_id}/ingest","href":"/api-reference/knowledge-base/ingest-documents-text-files-or-mixed"},{"title":"List ingestion jobs for a knowledge base","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/knowledge-bases/{kb_id}/ingestion-jobs","href":"/api-reference/knowledge-base/list-ingestion-jobs-for-a-knowledge-base"},{"title":"Get ingestion job progress","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/ingestion-jobs/{job_id}","href":"/api-reference/knowledge-base/get-ingestion-job-progress"},{"title":"List documents in an ingestion job","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/ingestion-jobs/{job_id}/documents","href":"/api-reference/knowledge-base/list-documents-in-an-ingestion-job"},{"title":"List ingestion job logs grouped by document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/ingestion-jobs/{job_id}/logs","href":"/api-reference/knowledge-base/list-ingestion-job-logs-grouped-by-document"},{"title":"Retry a failed ingestion job","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/ingestion-jobs/{job_id}/retry","href":"/api-reference/knowledge-base/retry-a-failed-ingestion-job"},{"title":"Semantic search across knowledge bases","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/search","href":"/api-reference/knowledge-base/semantic-search-across-knowledge-bases"},{"title":"List all versions of a document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/documents/{doc_id}/versions","href":"/api-reference/knowledge-base/list-all-versions-of-a-document"},{"title":"Get a version by UUID, version number, or alias","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/documents/{doc_id}/versions/{ref}","href":"/api-reference/knowledge-base/get-a-version-by-uuid-version-number-or-alias"},{"title":"Delete a specific version (blocked if active)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/knowledge-base/documents/{doc_id}/versions/{version_id}","href":"/api-reference/knowledge-base/delete-a-specific-version-blocked-if-active"},{"title":"Promote a version to active","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/documents/{doc_id}/promote","href":"/api-reference/knowledge-base/promote-a-version-to-active"},{"title":"Release a quarantined version (reviewed false-positive)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/documents/{doc_id}/versions/{version_id}/release","href":"/api-reference/knowledge-base/release-a-quarantined-version-reviewed-false-positive"},{"title":"Confirm a quarantined version (true-positive; stays quarantined)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/documents/{doc_id}/versions/{version_id}/confirm-quarantine","href":"/api-reference/knowledge-base/confirm-a-quarantined-version-true-positive;-stays-quarantined"}]},{"group":"knowledge-base-evals","pages":[{"title":"List evaluation suites","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/evals/suites","href":"/api-reference/knowledge-base-evals/list-evaluation-suites"},{"title":"Create an evaluation suite","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/evals/suites","href":"/api-reference/knowledge-base-evals/create-an-evaluation-suite"},{"title":"Get an evaluation suite with its cases","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/evals/suites/{suite_id}","href":"/api-reference/knowledge-base-evals/get-an-evaluation-suite-with-its-cases"},{"title":"Delete an evaluation suite","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/knowledge-base/evals/suites/{suite_id}","href":"/api-reference/knowledge-base-evals/delete-an-evaluation-suite"},{"title":"Update an evaluation suite","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/knowledge-base/evals/suites/{suite_id}","href":"/api-reference/knowledge-base-evals/update-an-evaluation-suite"},{"title":"Add a case to an evaluation suite","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/evals/suites/{suite_id}/cases","href":"/api-reference/knowledge-base-evals/add-a-case-to-an-evaluation-suite"},{"title":"Delete an evaluation case","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/knowledge-base/evals/cases/{case_id}","href":"/api-reference/knowledge-base-evals/delete-an-evaluation-case"},{"title":"Update an evaluation case","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/knowledge-base/evals/cases/{case_id}","href":"/api-reference/knowledge-base-evals/update-an-evaluation-case"},{"title":"List evaluation runs for a suite","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/evals/suites/{suite_id}/runs","href":"/api-reference/knowledge-base-evals/list-evaluation-runs-for-a-suite"},{"title":"Trigger a new evaluation run against a suite","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/evals/suites/{suite_id}/runs","href":"/api-reference/knowledge-base-evals/trigger-a-new-evaluation-run-against-a-suite"},{"title":"List evaluation runs across the org (including runs whose suite was deleted)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/evals/runs","href":"/api-reference/knowledge-base-evals/list-evaluation-runs-across-the-org-including-runs-whose-suite-was-deleted"},{"title":"Get an evaluation run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/evals/runs/{run_id}","href":"/api-reference/knowledge-base-evals/get-an-evaluation-run"},{"title":"List per-case results for a run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/evals/runs/{run_id}/results","href":"/api-reference/knowledge-base-evals/list-per-case-results-for-a-run"}]},{"group":"knowledge-base-connectors","pages":[{"title":"List Sources","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/knowledge-bases/{kb_id}/sources","href":"/api-reference/knowledge-base-connectors/list-sources"},{"title":"Create Source","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/knowledge-bases/{kb_id}/sources","href":"/api-reference/knowledge-base-connectors/create-source"},{"title":"Get Source","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/knowledge-bases/{kb_id}/sources/{source_id}","href":"/api-reference/knowledge-base-connectors/get-source"},{"title":"Delete Source","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/knowledge-base/knowledge-bases/{kb_id}/sources/{source_id}","href":"/api-reference/knowledge-base-connectors/delete-source"},{"title":"List Roots","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/knowledge-bases/{kb_id}/sources/{source_id}/roots","href":"/api-reference/knowledge-base-connectors/list-roots"},{"title":"Add Root","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/knowledge-bases/{kb_id}/sources/{source_id}/roots","href":"/api-reference/knowledge-base-connectors/add-root"},{"title":"Delete Root","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/knowledge-base/knowledge-bases/{kb_id}/sources/{source_id}/roots/{root_id}","href":"/api-reference/knowledge-base-connectors/delete-root"},{"title":"Drive Picker Config","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/knowledge-bases/{kb_id}/sources/{source_id}/drive/picker-config","href":"/api-reference/knowledge-base-connectors/drive-picker-config"},{"title":"Browse Pages","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/knowledge-bases/{kb_id}/sources/{source_id}/pages","href":"/api-reference/knowledge-base-connectors/browse-pages"},{"title":"Trigger Sync","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/knowledge-bases/{kb_id}/sources/{source_id}/sync","href":"/api-reference/knowledge-base-connectors/trigger-sync"},{"title":"Get Sync Status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/knowledge-bases/{kb_id}/sources/{source_id}/sync/status","href":"/api-reference/knowledge-base-connectors/get-sync-status"},{"title":"Update Source Schedule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/knowledge-base/knowledge-bases/{kb_id}/sources/{source_id}/schedule","href":"/api-reference/knowledge-base-connectors/update-source-schedule"}]},{"group":"knowledge-base-governance","pages":[{"title":"Update a version's lifecycle governance status / expiry","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/knowledge-base/documents/{doc_id}/versions/{version_id}/governance","href":"/api-reference/knowledge-base-governance/update-a-versions-lifecycle-governance-status-expiry"},{"title":"List a version's governance lifecycle history (newest first)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/documents/{doc_id}/versions/{version_id}/governance-events","href":"/api-reference/knowledge-base-governance/list-a-versions-governance-lifecycle-history-newest-first"},{"title":"Get the org's KB audit retention policy (creates defaults if unset)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/retention-policy","href":"/api-reference/knowledge-base-governance/get-the-orgs-kb-audit-retention-policy-creates-defaults-if-unset"},{"title":"Update the org's KB audit retention policy / legal hold","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/knowledge-base/retention-policy","href":"/api-reference/knowledge-base-governance/update-the-orgs-kb-audit-retention-policy-legal-hold"}]},{"group":"knowledge-base-audit","pages":[{"title":"Query governed KB retrieval-audit logs (incl. misses/blocks/errors)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/audit/retrievals","href":"/api-reference/knowledge-base-audit/query-governed-kb-retrieval-audit-logs-incl-missesblockserrors"},{"title":"Get one retrieval-audit log with its scopes and chunk refs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/audit/retrievals/{ref}","href":"/api-reference/knowledge-base-audit/get-one-retrieval-audit-log-with-its-scopes-and-chunk-refs"},{"title":"List this org's KB audit export jobs (newest first)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/audit/exports","href":"/api-reference/knowledge-base-audit/list-this-orgs-kb-audit-export-jobs-newest-first"},{"title":"Request an async encrypted KB audit export","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/audit/exports","href":"/api-reference/knowledge-base-audit/request-an-async-encrypted-kb-audit-export"},{"title":"Get an audit export job's status + per-file download tokens","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/audit/exports/{export_id}","href":"/api-reference/knowledge-base-audit/get-an-audit-export-jobs-status-+-per-file-download-tokens"},{"title":"Server-mediated, decrypted download of one export file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/audit/exports/{export_id}/download/{file_name}","href":"/api-reference/knowledge-base-audit/server-mediated-decrypted-download-of-one-export-file"}]},{"group":"knowledge-base-acl","pages":[{"title":"Get the org's effective KB ACL config (role→clearance map + mode)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/acl/config","href":"/api-reference/knowledge-base-acl/get-the-orgs-effective-kb-acl-config-role→clearance-map-+-mode"},{"title":"Update the org's KB role→clearance map and/or classification mode","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/knowledge-base/acl/config","href":"/api-reference/knowledge-base-acl/update-the-orgs-kb-role→clearance-map-andor-classification-mode"},{"title":"Enqueue the KB ACL enable preflight (verifies coverage + config)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/acl/rollout/preflight","href":"/api-reference/knowledge-base-acl/enqueue-the-kb-acl-enable-preflight-verifies-coverage-+-config"},{"title":"Get the org's KB ACL rollout state + last preflight report","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-base/acl/rollout/status","href":"/api-reference/knowledge-base-acl/get-the-orgs-kb-acl-rollout-state-+-last-preflight-report"},{"title":"Enable KB ACL (requires a passing preflight → ready_to_enable)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/acl/rollout/enable","href":"/api-reference/knowledge-base-acl/enable-kb-acl-requires-a-passing-preflight-→-ready_to_enable"},{"title":"Disable KB ACL (returns retrieval to byte-identical pre-ENG-640)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-base/acl/rollout/disable","href":"/api-reference/knowledge-base-acl/disable-kb-acl-returns-retrieval-to-byte-identical-pre-eng-640"}]},{"group":"model-router","pages":[{"title":"List available models with pricing and capabilities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/model-router/models","href":"/api-reference/model-router/list-available-models-with-pricing-and-capabilities"},{"title":"List models, per-role runtime defaults, and the system default fallback chain","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/model-router/catalog","href":"/api-reference/model-router/list-models-per-role-runtime-defaults-and-the-system-default-fallback-chain"},{"title":"List model router configs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/model-router/configs","href":"/api-reference/model-router/list-model-router-configs"},{"title":"Create a model router config","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/model-router/configs","href":"/api-reference/model-router/create-a-model-router-config"},{"title":"Get a model router config","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/model-router/configs/{config_id}","href":"/api-reference/model-router/get-a-model-router-config"},{"title":"Update a model router config","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/model-router/configs/{config_id}","href":"/api-reference/model-router/update-a-model-router-config"},{"title":"Delete a model router config","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/model-router/configs/{config_id}","href":"/api-reference/model-router/delete-a-model-router-config"},{"title":"List model fallback events for auditing","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/model-router/fallback-events","href":"/api-reference/model-router/list-model-fallback-events-for-auditing"},{"title":"Invoke a model with routing","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/model-router/invoke","href":"/api-reference/model-router/invoke-a-model-with-routing"},{"title":"Stream model responses via SSE","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/model-router/stream","href":"/api-reference/model-router/stream-model-responses-via-sse"}]},{"group":"notifications","pages":[{"title":"Discover channels the bot can post to (cached 5 min)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/notifications/destinations/discover","href":"/api-reference/notifications/discover-channels-the-bot-can-post-to-cached-5-min"},{"title":"List configured notification destinations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/notifications/destinations","href":"/api-reference/notifications/list-configured-notification-destinations"},{"title":"Create a destination (verified on save via a test post)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/notifications/destinations","href":"/api-reference/notifications/create-a-destination-verified-on-save-via-a-test-post"},{"title":"Delete a notification destination","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/notifications/destinations/{destination_id}","href":"/api-reference/notifications/delete-a-notification-destination"},{"title":"List event-type routing rules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/notifications/routes","href":"/api-reference/notifications/list-event-type-routing-rules"},{"title":"Create or update an event_type -> destination route","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/notifications/routes","href":"/api-reference/notifications/create-or-update-an-event_type->-destination-route"},{"title":"Delete a routing rule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/notifications/routes/{route_id}","href":"/api-reference/notifications/delete-a-routing-rule"},{"title":"Get org notification settings (default destination + timezone)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/notifications/settings","href":"/api-reference/notifications/get-org-notification-settings-default-destination-+-timezone"},{"title":"Set the default destination and/or org timezone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/notifications/settings","href":"/api-reference/notifications/set-the-default-destination-andor-org-timezone"},{"title":"Browse the notification catalog merged with this org's config","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/notifications/types","href":"/api-reference/notifications/browse-the-notification-catalog-merged-with-this-orgs-config"},{"title":"Enable/disable a type and set its severity override / threshold config","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/notifications/types/{event_type}/config","href":"/api-reference/notifications/enabledisable-a-type-and-set-its-severity-override-threshold-config"},{"title":"One-click enable the recommended starter set","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/notifications/types/enable-recommended","href":"/api-reference/notifications/one-click-enable-the-recommended-starter-set"},{"title":"Send a test notification through the real dispatch path (notify())","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/notifications/types/{event_type}/test-send","href":"/api-reference/notifications/send-a-test-notification-through-the-real-dispatch-path-notify"},{"title":"Browse the delivery-decision audit log (why a notification was/wasn't sent)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/notifications/delivery-log","href":"/api-reference/notifications/browse-the-delivery-decision-audit-log-why-a-notification-waswasnt-sent"},{"title":"Get the effective template for a type (default or override) + variables manifest","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/notifications/types/{event_type}/template","href":"/api-reference/notifications/get-the-effective-template-for-a-type-default-or-override-+-variables-manifest"},{"title":"Create/update the per-org template override (validates + increments version)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/notifications/types/{event_type}/template","href":"/api-reference/notifications/createupdate-the-per-org-template-override-validates-+-increments-version"},{"title":"Delete the per-org override (revert to the platform default)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/notifications/types/{event_type}/template","href":"/api-reference/notifications/delete-the-per-org-override-revert-to-the-platform-default"},{"title":"Strict-validate candidate slots (per-slot errors; valid=false is a 200)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/notifications/types/{event_type}/template/validate","href":"/api-reference/notifications/strict-validate-candidate-slots-per-slot-errors;-valid=false-is-a-200"},{"title":"Render a preview (text + blocks) of candidate-or-effective slots","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/notifications/types/{event_type}/template/preview","href":"/api-reference/notifications/render-a-preview-text-+-blocks-of-candidate-or-effective-slots"}]},{"group":"integrations","pages":[{"title":"List the integrations this platform supports","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/integrations","href":"/api-reference/integrations/list-the-integrations-this-platform-supports"},{"title":"List the calling org's connections","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/integrations/connections","href":"/api-reference/integrations/list-the-calling-orgs-connections"},{"title":"Start the OAuth flow for a new connection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/integrations/connections","href":"/api-reference/integrations/start-the-oauth-flow-for-a-new-connection"},{"title":"Get a connection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/integrations/connections/{connection_id}","href":"/api-reference/integrations/get-a-connection"},{"title":"Disconnect (hard-delete the row + drop vendor-side connection)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/integrations/connections/{connection_id}","href":"/api-reference/integrations/disconnect-hard-delete-the-row-+-drop-vendor-side-connection"},{"title":"Rename a connection and/or set its BYO voice CPS rate (slug stays immutable)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/integrations/connections/{connection_id}","href":"/api-reference/integrations/rename-a-connection-andor-set-its-byo-voice-cps-rate-slug-stays-immutable"},{"title":"Connect a customer-supplied MCP server (static creds or OAuth)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/integrations/connections/custom-mcp","href":"/api-reference/integrations/connect-a-customer-supplied-mcp-server-static-creds-or-oauth"},{"title":"Connect the Email integration (born active; presence marker for the send_email tool)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/integrations/connections/email","href":"/api-reference/integrations/connect-the-email-integration-born-active;-presence-marker-for-the-send_email-tool"},{"title":"Pre-check a custom MCP server's OAuth/DCR support","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/integrations/connections/custom-mcp/discover","href":"/api-reference/integrations/pre-check-a-custom-mcp-servers-oauthdcr-support"},{"title":"Finalize a connection after the OAuth popup closes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/integrations/connections/{connection_id}/finalize","href":"/api-reference/integrations/finalize-a-connection-after-the-oauth-popup-closes"},{"title":"Manually re-sync the tool list for this connection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/integrations/connections/{connection_id}/refresh-tools","href":"/api-reference/integrations/manually-re-sync-the-tool-list-for-this-connection"},{"title":"Enable or disable all tools on a connection","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/integrations/connections/{connection_id}/tools","href":"/api-reference/integrations/enable-or-disable-all-tools-on-a-connection"},{"title":"Edit author-editable metadata on a single tool (response_field_map, is_enabled, input_defaults — defaults + pinned)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/integrations/connections/{connection_id}/tools/{tool_id}","href":"/api-reference/integrations/edit-author-editable-metadata-on-a-single-tool-response_field_map-is_enabled-input_defaults-—-defaults-+-pinned"},{"title":"Dashboard test surface: invoke a tool by slug (VENDOR_API)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/integrations/connections/{connection_id}/test-invoke","href":"/api-reference/integrations/dashboard-test-surface:-invoke-a-tool-by-slug-vendor_api"},{"title":"Dashboard test surface: invoke an MCP tool by slug (FEATHER_MCP_CLIENT)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/integrations/connections/{connection_id}/test-mcp-call","href":"/api-reference/integrations/dashboard-test-surface:-invoke-an-mcp-tool-by-slug-feather_mcp_client"},{"title":"Dashboard test surface: lease a provider token (FEATHER_API)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/integrations/connections/{connection_id}/test-lease","href":"/api-reference/integrations/dashboard-test-surface:-lease-a-provider-token-feather_api"},{"title":"Recent webhook events for the org (testing/observability)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/integrations/webhook-events","href":"/api-reference/integrations/recent-webhook-events-for-the-org-testingobservability"}]},{"group":"tools","pages":[{"title":"List API tools","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tools","href":"/api-reference/tools/list-api-tools"},{"title":"Create an API tool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tools","href":"/api-reference/tools/create-an-api-tool"},{"title":"Get an API tool by ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tools/{tool_id}","href":"/api-reference/tools/get-an-api-tool-by-id"},{"title":"Update an API tool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/tools/{tool_id}","href":"/api-reference/tools/update-an-api-tool"},{"title":"Delete an API tool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/tools/{tool_id}","href":"/api-reference/tools/delete-an-api-tool"},{"title":"Execute an API tool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tools/{tool_id}/execute","href":"/api-reference/tools/execute-an-api-tool"},{"title":"Preview a revision's RAW response + narrowed field map (no persist)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tools/{tool_id}/revisions/{revision_id}/test","href":"/api-reference/tools/preview-a-revisions-raw-response-+-narrowed-field-map-no-persist"},{"title":"Dry-run a dynamic transfer-destination lookup (no persist)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tools/{tool_id}/revisions/{revision_id}/preview-transfer-destination","href":"/api-reference/tools/dry-run-a-dynamic-transfer-destination-lookup-no-persist"},{"title":"Enable an API tool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tools/{tool_id}/enable","href":"/api-reference/tools/enable-an-api-tool"},{"title":"Disable an API tool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tools/{tool_id}/disable","href":"/api-reference/tools/disable-an-api-tool"},{"title":"List tool revisions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tools/{tool_id}/revisions","href":"/api-reference/tools/list-tool-revisions"},{"title":"Create a tool revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tools/{tool_id}/revisions","href":"/api-reference/tools/create-a-tool-revision"},{"title":"Get a tool revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tools/revisions/{revision_id}","href":"/api-reference/tools/get-a-tool-revision"},{"title":"Update a tool revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/tools/revisions/{revision_id}","href":"/api-reference/tools/update-a-tool-revision"},{"title":"Delete a tool revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/tools/revisions/{revision_id}","href":"/api-reference/tools/delete-a-tool-revision"},{"title":"Set the active tool revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/tools/{tool_id}/set-active-revision","href":"/api-reference/tools/set-the-active-tool-revision"},{"title":"Analyze which assistants would be affected if this tool revision is promoted","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/tools/{tool_id}/revisions/{revision_id}/impact","href":"/api-reference/tools/analyze-which-assistants-would-be-affected-if-this-tool-revision-is-promoted"}]},{"group":"mocks","pages":[{"title":"List mocks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/mocks","href":"/api-reference/mocks/list-mocks"},{"title":"Create a mock","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/mocks","href":"/api-reference/mocks/create-a-mock"},{"title":"Get a mock","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/mocks/{mock_id}","href":"/api-reference/mocks/get-a-mock"},{"title":"Update a mock","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/mocks/{mock_id}","href":"/api-reference/mocks/update-a-mock"},{"title":"Delete a mock","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/mocks/{mock_id}","href":"/api-reference/mocks/delete-a-mock"},{"title":"Enable a mock","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/mocks/{mock_id}/enable","href":"/api-reference/mocks/enable-a-mock"},{"title":"Disable a mock","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/mocks/{mock_id}/disable","href":"/api-reference/mocks/disable-a-mock"},{"title":"List scenarios on a mock (priority ASC)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/mocks/{mock_id}/scenarios","href":"/api-reference/mocks/list-scenarios-on-a-mock-priority-asc"},{"title":"Atomically replace all scenarios on a mock","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/mocks/{mock_id}/scenarios","href":"/api-reference/mocks/atomically-replace-all-scenarios-on-a-mock"},{"title":"Create a scenario for a mock","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/mocks/{mock_id}/scenarios","href":"/api-reference/mocks/create-a-scenario-for-a-mock"},{"title":"Bulk update scenario priorities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/mocks/{mock_id}/scenarios/reorder","href":"/api-reference/mocks/bulk-update-scenario-priorities"},{"title":"Get a scenario","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/mocks/scenarios/{scenario_id}","href":"/api-reference/mocks/get-a-scenario"},{"title":"Update a scenario","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/mocks/scenarios/{scenario_id}","href":"/api-reference/mocks/update-a-scenario"},{"title":"Delete a scenario","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/mocks/scenarios/{scenario_id}","href":"/api-reference/mocks/delete-a-scenario"},{"title":"Paginated, filterable list of dispatcher requests for a mock","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/mocks/{mock_id}/requests","href":"/api-reference/mocks/paginated-filterable-list-of-dispatcher-requests-for-a-mock"},{"title":"Get a single dispatcher request log entry (verbose)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/mocks/requests/{request_id}","href":"/api-reference/mocks/get-a-single-dispatcher-request-log-entry-verbose"}]},{"group":"webchat","pages":[{"title":"List webchat widgets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webchat/widgets","href":"/api-reference/webchat/list-webchat-widgets"},{"title":"Create a webchat widget","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webchat/widgets","href":"/api-reference/webchat/create-a-webchat-widget"},{"title":"Get a webchat widget","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webchat/widgets/{widget_id}","href":"/api-reference/webchat/get-a-webchat-widget"},{"title":"Delete a webchat widget","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/webchat/widgets/{widget_id}","href":"/api-reference/webchat/delete-a-webchat-widget"},{"title":"Update a webchat widget","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/webchat/widgets/{widget_id}","href":"/api-reference/webchat/update-a-webchat-widget"},{"title":"Rotate a widget's public embed key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webchat/widgets/{widget_id}/rotate-key","href":"/api-reference/webchat/rotate-a-widgets-public-embed-key"},{"title":"Revoke every live session token for a widget","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webchat/widgets/{widget_id}/kill","href":"/api-reference/webchat/revoke-every-live-session-token-for-a-widget"},{"title":"Add an allowed embed domain","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webchat/widgets/{widget_id}/domains","href":"/api-reference/webchat/add-an-allowed-embed-domain"},{"title":"Remove an allowed embed domain","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/webchat/widgets/{widget_id}/domains/{domain_id}","href":"/api-reference/webchat/remove-an-allowed-embed-domain"},{"title":"Check a domain's DNS TXT record now","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webchat/widgets/{widget_id}/domains/{domain_id}/verify","href":"/api-reference/webchat/check-a-domains-dns-txt-record-now"}]},{"group":"hitl","pages":[{"title":"Get the org's HITL approval-UX lines (resolved)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/hitl/approval-messages","href":"/api-reference/hitl/get-the-orgs-hitl-approval-ux-lines-resolved"},{"title":"Set/clear the org's HITL approval-UX lines","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/hitl/approval-messages","href":"/api-reference/hitl/setclear-the-orgs-hitl-approval-ux-lines"},{"title":"List approval requests","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/hitl/approvals","href":"/api-reference/hitl/list-approval-requests"},{"title":"Get an approval request","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/hitl/approvals/{approval_id}","href":"/api-reference/hitl/get-an-approval-request"},{"title":"Decide an approval request (approve / deny)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/hitl/approvals/{approval_id}/decide","href":"/api-reference/hitl/decide-an-approval-request-approve-deny"},{"title":"List handoffs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/hitl/handoffs","href":"/api-reference/hitl/list-handoffs"},{"title":"Get a handoff","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/hitl/handoffs/{handoff_id}","href":"/api-reference/hitl/get-a-handoff"},{"title":"Relay an operator message on a handed-off conversation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/hitl/handoffs/{handoff_id}/messages","href":"/api-reference/hitl/relay-an-operator-message-on-a-handed-off-conversation"},{"title":"Resolve a handoff and close its conversation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/hitl/handoffs/{handoff_id}/resolve","href":"/api-reference/hitl/resolve-a-handoff-and-close-its-conversation"},{"title":"List failed warm-transfer attempts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/hitl/failed-transfers","href":"/api-reference/hitl/list-failed-warm-transfer-attempts"}]},{"group":"personas","pages":[{"title":"List personas","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/personas","href":"/api-reference/personas/list-personas"},{"title":"Create a persona","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/personas","href":"/api-reference/personas/create-a-persona"},{"title":"Get a persona","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/personas/{persona_id}","href":"/api-reference/personas/get-a-persona"},{"title":"Update a persona","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/personas/{persona_id}","href":"/api-reference/personas/update-a-persona"},{"title":"Delete a persona","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/personas/{persona_id}","href":"/api-reference/personas/delete-a-persona"},{"title":"Get a persona's voice call behavior settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/personas/{persona_id}/call-settings","href":"/api-reference/personas/get-a-personas-voice-call-behavior-settings"},{"title":"Update a persona's voice call behavior settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/personas/{persona_id}/call-settings","href":"/api-reference/personas/update-a-personas-voice-call-behavior-settings"}]},{"group":"conversations","pages":[{"title":"List v2 conversations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations","href":"/api-reference/conversations/list-v2-conversations"},{"title":"Get or create a v2 conversation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/conversations","href":"/api-reference/conversations/get-or-create-a-v2-conversation"},{"title":"List a v2 conversation's transcript","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations/{conversation_id}/turns","href":"/api-reference/conversations/list-a-v2-conversations-transcript"},{"title":"Run one turn of a v2 conversation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/conversations/{conversation_id}/turns","href":"/api-reference/conversations/run-one-turn-of-a-v2-conversation"},{"title":"Get a v2 conversation with recent turns","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations/{conversation_id}","href":"/api-reference/conversations/get-a-v2-conversation-with-recent-turns"},{"title":"Delete a v2 conversation and purge its data + blobs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/conversations/{conversation_id}","href":"/api-reference/conversations/delete-a-v2-conversation-and-purge-its-data-+-blobs"},{"title":"Close a v2 conversation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/conversations/{conversation_id}/close","href":"/api-reference/conversations/close-a-v2-conversation"},{"title":"End a v2 conversation through the close pipeline (admin)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/conversations/{conversation_id}/end_session","href":"/api-reference/conversations/end-a-v2-conversation-through-the-close-pipeline-admin"},{"title":"Mint a fresh test-type v2 conversation bound to an agent or team","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/conversations/test-chat","href":"/api-reference/conversations/mint-a-fresh-test-type-v2-conversation-bound-to-an-agent-or-team"},{"title":"Poll a v2 conversation for its status and the message tail since a seq","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations/{conversation_id}/messages","href":"/api-reference/conversations/poll-a-v2-conversation-for-its-status-and-the-message-tail-since-a-seq"},{"title":"Get the customer-readable trace for a v2 conversation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations/{conversation_id}/trace","href":"/api-reference/conversations/get-the-customer-readable-trace-for-a-v2-conversation"},{"title":"Get the customer-readable trace for a v2 conversation, nested Session→Turn→node→step","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations/{conversation_id}/trace/grouped","href":"/api-reference/conversations/get-the-customer-readable-trace-for-a-v2-conversation-nested-session→turn→node→step"},{"title":"Get the customer-readable trace for a single v2 turn","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations/{conversation_id}/turns/{turn_id}/trace","href":"/api-reference/conversations/get-the-customer-readable-trace-for-a-single-v2-turn"},{"title":"List the per-turn engineering-waterfall summaries for a v2 conversation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations/{conversation_id}/engineering/turns","href":"/api-reference/conversations/list-the-per-turn-engineering-waterfall-summaries-for-a-v2-conversation"},{"title":"Get the reconstructed engineering waterfall for a single v2 turn","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations/{conversation_id}/engineering/turns/{turn_id}","href":"/api-reference/conversations/get-the-reconstructed-engineering-waterfall-for-a-single-v2-turn"},{"title":"Re-run all current evaluator bindings against a v2 conversation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/conversations/{conversation_id}/reevaluate","href":"/api-reference/conversations/re-run-all-current-evaluator-bindings-against-a-v2-conversation"},{"title":"Run one v2 conversation turn with an SSE response","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/conversations/{conversation_id}/turns/stream","href":"/api-reference/conversations/run-one-v2-conversation-turn-with-an-sse-response"}]},{"group":"assistants","pages":[{"title":"List assistants (cursor-paginated)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants","href":"/api-reference/assistants/list-assistants-cursor-paginated"},{"title":"Create an assistant (agent + workflow) as one unit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/assistants","href":"/api-reference/assistants/create-an-assistant-agent-+-workflow-as-one-unit"},{"title":"Get the org-level channel-prompt override map","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/channel-prompts","href":"/api-reference/assistants/get-the-org-level-channel-prompt-override-map"},{"title":"Set/clear the org-level channel-prompt override map","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/assistants/channel-prompts","href":"/api-reference/assistants/setclear-the-org-level-channel-prompt-override-map"},{"title":"Get the org-level current-time context configuration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/current-time","href":"/api-reference/assistants/get-the-org-level-current-time-context-configuration"},{"title":"Set/clear the org-level current-time context configuration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/assistants/current-time","href":"/api-reference/assistants/setclear-the-org-level-current-time-context-configuration"},{"title":"List the platform tools an assistant can enable","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/platform-tools/catalog","href":"/api-reference/assistants/list-the-platform-tools-an-assistant-can-enable"},{"title":"Get an assistant (config + all revisions)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}","href":"/api-reference/assistants/get-an-assistant-config-+-all-revisions"},{"title":"Update stable identity (name, description, metadata, voice concurrency cap)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/assistants/{agent_id}","href":"/api-reference/assistants/update-stable-identity-name-description-metadata-voice-concurrency-cap"},{"title":"Archive an assistant (blocked by active deployments)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/assistants/{agent_id}/archive","href":"/api-reference/assistants/archive-an-assistant-blocked-by-active-deployments"},{"title":"Restore an archived assistant","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/assistants/{agent_id}/restore","href":"/api-reference/assistants/restore-an-archived-assistant"},{"title":"List deployment bindings (archive blockers)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/deployments","href":"/api-reference/assistants/list-deployment-bindings-archive-blockers"},{"title":"Get operational settings (eval toggles, release-gate config)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/operational-settings","href":"/api-reference/assistants/get-operational-settings-eval-toggles-release-gate-config"},{"title":"Update evaluation toggles (requires evals:configure_live)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/assistants/{agent_id}/operational-settings/evaluation","href":"/api-reference/assistants/update-evaluation-toggles-requires-evals:configure_live"},{"title":"Update knowledge-gap analysis toggle","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/assistants/{agent_id}/operational-settings/analysis","href":"/api-reference/assistants/update-knowledge-gap-analysis-toggle"},{"title":"Update release-gate config","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/assistants/{agent_id}/operational-settings/release-gate","href":"/api-reference/assistants/update-release-gate-config"},{"title":"List the revision stack (newest first)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/revisions","href":"/api-reference/assistants/list-the-revision-stack-newest-first"},{"title":"Create a new revision (optionally branch from an existing one)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/assistants/{agent_id}/revisions","href":"/api-reference/assistants/create-a-new-revision-optionally-branch-from-an-existing-one"},{"title":"Get a specific revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/revisions/{revision_id}","href":"/api-reference/assistants/get-a-specific-revision"},{"title":"Delete a revision (cannot delete the active revision)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/assistants/{agent_id}/revisions/{revision_id}","href":"/api-reference/assistants/delete-a-revision-cannot-delete-the-active-revision"},{"title":"Update revision config (any revision, in place)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/assistants/{agent_id}/revisions/{revision_id}","href":"/api-reference/assistants/update-revision-config-any-revision-in-place"},{"title":"Get a revision's effective current-time context configuration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/revisions/{revision_id}/current-time","href":"/api-reference/assistants/get-a-revisions-effective-current-time-context-configuration"},{"title":"Set/clear a revision's current-time context configuration","deprecated":true,"version":null,"openapi":"/api-reference/openapi.json put /v1/assistants/{agent_id}/revisions/{revision_id}/current-time","href":"/api-reference/assistants/setclear-a-revisions-current-time-context-configuration"},{"title":"Get resolved bare/workflow runtime configuration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/revisions/{revision_id}/effective-runtime-config","href":"/api-reference/assistants/get-resolved-bareworkflow-runtime-configuration"},{"title":"Get ownership-separated system and workflow context schemas","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/revisions/{revision_id}/context-schema","href":"/api-reference/assistants/get-ownership-separated-system-and-workflow-context-schemas"},{"title":"Get a revision's flow graph","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/revisions/{revision_id}/graph","href":"/api-reference/assistants/get-a-revisions-flow-graph"},{"title":"Replace or clear a revision's flow graph","description":"Persist a graph edit, or clear it with ``compiled_graph: null``.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/assistants/{agent_id}/revisions/{revision_id}/graph","href":"/api-reference/assistants/replace-or-clear-a-revisions-flow-graph"},{"title":"Resolve inherited and node-local tools for a revision's flow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/revisions/{revision_id}/effective-tool-surface","href":"/api-reference/assistants/resolve-inherited-and-node-local-tools-for-a-revisions-flow"},{"title":"Apply graph ops to a revision's flow","description":"Apply graph ops to a revision's flow.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/assistants/{agent_id}/revisions/{revision_id}/graph/ops","href":"/api-reference/assistants/apply-graph-ops-to-a-revisions-flow"},{"title":"Activate a revision (pure FK flip, no clone)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/assistants/{agent_id}/revisions/{revision_id}/activate","href":"/api-reference/assistants/activate-a-revision-pure-fk-flip-no-clone"},{"title":"Latest release-check verdict for a candidate revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/revisions/{revision_id}/release-check","href":"/api-reference/assistants/latest-release-check-verdict-for-a-candidate-revision"},{"title":"Dispatch the assistant's release simulation suite against a candidate revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/assistants/{agent_id}/revisions/{revision_id}/release-check","href":"/api-reference/assistants/dispatch-the-assistants-release-simulation-suite-against-a-candidate-revision"},{"title":"List the legacy merged context-variable projection","deprecated":true,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/variables","href":"/api-reference/assistants/list-the-legacy-merged-context-variable-projection"},{"title":"Get the assistant's enabled platform tools (from active revision)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/platform-tools","href":"/api-reference/assistants/get-the-assistants-enabled-platform-tools-from-active-revision"},{"title":"Get per-assistant eval configuration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/eval-config","href":"/api-reference/assistants/get-per-assistant-eval-configuration"},{"title":"Set per-assistant eval configuration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/assistants/{agent_id}/eval-config","href":"/api-reference/assistants/set-per-assistant-eval-configuration"},{"title":"Get an assistant revision's tool-input defaults (enriched view)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/revisions/{revision_id}/tool-input-defaults","href":"/api-reference/assistants/get-an-assistant-revisions-tool-input-defaults-enriched-view"},{"title":"Replace an assistant revision's tool-input defaults","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/assistants/revisions/{revision_id}/tool-input-defaults","href":"/api-reference/assistants/replace-an-assistant-revisions-tool-input-defaults"},{"title":"Unified audit timeline (revisions + operational + dependency events)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/audit-log","href":"/api-reference/assistants/unified-audit-timeline-revisions-+-operational-+-dependency-events"},{"title":"Get a revision's voice call behavior settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/revisions/{revision_id}/call-settings","href":"/api-reference/assistants/get-a-revisions-voice-call-behavior-settings"},{"title":"Update a revision's voice call behavior settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/assistants/{agent_id}/revisions/{revision_id}/call-settings","href":"/api-reference/assistants/update-a-revisions-voice-call-behavior-settings"}]},{"group":"policies","pages":[{"title":"List policies","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/policies","href":"/api-reference/policies/list-policies"},{"title":"Create a policy","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/policies","href":"/api-reference/policies/create-a-policy"},{"title":"Get the org-wide policy enforcement switch","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/policies/enforcement","href":"/api-reference/policies/get-the-org-wide-policy-enforcement-switch"},{"title":"Enable/disable all policy enforcement for the org (kill switch)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/policies/enforcement","href":"/api-reference/policies/enabledisable-all-policy-enforcement-for-the-org-kill-switch"},{"title":"Get the org-level llm_judge model default","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/policies/judge-model","href":"/api-reference/policies/get-the-org-level-llm_judge-model-default"},{"title":"Set/clear the org-level llm_judge model default","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/policies/judge-model","href":"/api-reference/policies/setclear-the-org-level-llm_judge-model-default"},{"title":"List policy evaluation audit rows (what enforcement happened, newest-first)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/policies/evaluations","href":"/api-reference/policies/list-policy-evaluation-audit-rows-what-enforcement-happened-newest-first"},{"title":"Describe the expression-check DSL (paths per point, predicates, operators)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/policies/expression-schema","href":"/api-reference/policies/describe-the-expression-check-dsl-paths-per-point-predicates-operators"},{"title":"Describe the policy authoring cascade + per-transport runtime resolution","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/policies/capabilities","href":"/api-reference/policies/describe-the-policy-authoring-cascade-+-per-transport-runtime-resolution"},{"title":"Resolve a tool's input/output schema for policy authoring","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/policies/tool-schema","href":"/api-reference/policies/resolve-a-tools-inputoutput-schema-for-policy-authoring"},{"title":"Get a policy","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/policies/{policy_id}","href":"/api-reference/policies/get-a-policy"},{"title":"Update a policy's identity fields","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/policies/{policy_id}","href":"/api-reference/policies/update-a-policys-identity-fields"},{"title":"Delete a policy","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/policies/{policy_id}","href":"/api-reference/policies/delete-a-policy"},{"title":"List policy revisions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/policies/{policy_id}/revisions","href":"/api-reference/policies/list-policy-revisions"},{"title":"Create a policy revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/policies/{policy_id}/revisions","href":"/api-reference/policies/create-a-policy-revision"},{"title":"Get a policy revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/policies/revisions/{revision_id}","href":"/api-reference/policies/get-a-policy-revision"},{"title":"Delete a policy revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/policies/revisions/{revision_id}","href":"/api-reference/policies/delete-a-policy-revision"},{"title":"Set active policy revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/policies/{policy_id}/set-active-revision","href":"/api-reference/policies/set-active-policy-revision"},{"title":"Get an assistant revision's attached policies","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/revisions/{revision_id}/policies","href":"/api-reference/policies/get-an-assistant-revisions-attached-policies"},{"title":"Attach/detach policies on an assistant revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/assistants/revisions/{revision_id}/policies","href":"/api-reference/policies/attachdetach-policies-on-an-assistant-revision"},{"title":"Detach all policies from an assistant revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/assistants/revisions/{revision_id}/policies","href":"/api-reference/policies/detach-all-policies-from-an-assistant-revision"},{"title":"Describe an assistant's policy enforcement plan (per point, per transport)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/enforcement-plan","href":"/api-reference/policies/describe-an-assistants-policy-enforcement-plan-per-point-per-transport"}]},{"group":"teams","pages":[{"title":"List teams","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/teams","href":"/api-reference/teams/list-teams"},{"title":"Create a team","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/teams","href":"/api-reference/teams/create-a-team"},{"title":"Get a team","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/teams/{team_id}","href":"/api-reference/teams/get-a-team"},{"title":"Update a team","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/teams/{team_id}","href":"/api-reference/teams/update-a-team"},{"title":"Delete a team","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/teams/{team_id}","href":"/api-reference/teams/delete-a-team"},{"title":"List team revisions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/teams/{team_id}/revisions","href":"/api-reference/teams/list-team-revisions"},{"title":"Create a team revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/teams/{team_id}/revisions","href":"/api-reference/teams/create-a-team-revision"},{"title":"Get a team revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/teams/revisions/{revision_id}","href":"/api-reference/teams/get-a-team-revision"},{"title":"Set active team revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/teams/{team_id}/set-active-revision","href":"/api-reference/teams/set-active-team-revision"},{"title":"List members on a team revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/teams/revisions/{revision_id}/members","href":"/api-reference/teams/list-members-on-a-team-revision"},{"title":"Add a member to a team revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/teams/revisions/{revision_id}/members","href":"/api-reference/teams/add-a-member-to-a-team-revision"},{"title":"Update a member on a team revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/teams/revisions/{revision_id}/members/{member_id}","href":"/api-reference/teams/update-a-member-on-a-team-revision"},{"title":"Remove a member from a team revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/teams/revisions/{revision_id}/members/{member_id}","href":"/api-reference/teams/remove-a-member-from-a-team-revision"},{"title":"Get a team's voice call behavior settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/teams/{team_id}/call-settings","href":"/api-reference/teams/get-a-teams-voice-call-behavior-settings"},{"title":"Update a team's voice call behavior settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/teams/{team_id}/call-settings","href":"/api-reference/teams/update-a-teams-voice-call-behavior-settings"}]},{"group":"scenarios","pages":[{"title":"List scenarios","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/scenarios","href":"/api-reference/scenarios/list-scenarios"},{"title":"Create a scenario","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/scenarios","href":"/api-reference/scenarios/create-a-scenario"},{"title":"Generate an unsaved scenario draft from a brief","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/scenarios/draft","href":"/api-reference/scenarios/generate-an-unsaved-scenario-draft-from-a-brief"},{"title":"Generate an unsaved scenario draft from a captured session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/scenarios/draft-from-session","href":"/api-reference/scenarios/generate-an-unsaved-scenario-draft-from-a-captured-session"},{"title":"Get a scenario","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/scenarios/{scenario_id}","href":"/api-reference/scenarios/get-a-scenario"},{"title":"Update a scenario","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/scenarios/{scenario_id}","href":"/api-reference/scenarios/update-a-scenario"},{"title":"Delete a scenario","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/scenarios/{scenario_id}","href":"/api-reference/scenarios/delete-a-scenario"}]},{"group":"sim_suites","pages":[{"title":"List simulation suites","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sim-suites","href":"/api-reference/sim_suites/list-simulation-suites"},{"title":"Create a simulation suite","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sim-suites","href":"/api-reference/sim_suites/create-a-simulation-suite"},{"title":"List simulation suite runs across the org","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sim-suites/runs","href":"/api-reference/sim_suites/list-simulation-suite-runs-across-the-org"},{"title":"Get a simulation suite","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sim-suites/{suite_id}","href":"/api-reference/sim_suites/get-a-simulation-suite"},{"title":"Update a simulation suite","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/sim-suites/{suite_id}","href":"/api-reference/sim_suites/update-a-simulation-suite"},{"title":"Delete a simulation suite","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/sim-suites/{suite_id}","href":"/api-reference/sim_suites/delete-a-simulation-suite"},{"title":"Clone a simulation suite","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sim-suites/{suite_id}/clone","href":"/api-reference/sim_suites/clone-a-simulation-suite"},{"title":"Add an item to a simulation suite","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sim-suites/{suite_id}/items","href":"/api-reference/sim_suites/add-an-item-to-a-simulation-suite"},{"title":"Update a simulation suite item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/sim-suites/{suite_id}/items/{item_id}","href":"/api-reference/sim_suites/update-a-simulation-suite-item"},{"title":"Remove a simulation suite item","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/sim-suites/{suite_id}/items/{item_id}","href":"/api-reference/sim_suites/remove-a-simulation-suite-item"},{"title":"List simulation suite runs for a suite","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sim-suites/{suite_id}/runs","href":"/api-reference/sim_suites/list-simulation-suite-runs-for-a-suite"},{"title":"Dispatch a simulation suite run (fan-out per item)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sim-suites/{suite_id}/runs","href":"/api-reference/sim_suites/dispatch-a-simulation-suite-run-fan-out-per-item"},{"title":"Get a simulation suite run with its child runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sim-suites/{suite_id}/runs/{suite_run_id}","href":"/api-reference/sim_suites/get-a-simulation-suite-run-with-its-child-runs"},{"title":"Cancel every non-terminal child of a suite run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sim-suites/{suite_id}/runs/{suite_run_id}/cancel","href":"/api-reference/sim_suites/cancel-every-non-terminal-child-of-a-suite-run"},{"title":"Re-dispatch every failed child of a suite run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sim-suites/{suite_id}/runs/{suite_run_id}/retry-failed","href":"/api-reference/sim_suites/re-dispatch-every-failed-child-of-a-suite-run"}]},{"group":"simulation_runs","pages":[{"title":"List simulation runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/simulation/runs","href":"/api-reference/simulation_runs/list-simulation-runs"},{"title":"Dispatch a simulation run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/simulation/runs","href":"/api-reference/simulation_runs/dispatch-a-simulation-run"},{"title":"Get a simulation run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/simulation/runs/{sim_run_id}","href":"/api-reference/simulation_runs/get-a-simulation-run"},{"title":"Cancel a simulation run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/simulation/runs/{sim_run_id}/cancel","href":"/api-reference/simulation_runs/cancel-a-simulation-run"},{"title":"Get the customer-readable trace for a simulation run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/simulation/runs/{sim_run_id}/trace","href":"/api-reference/simulation_runs/get-the-customer-readable-trace-for-a-simulation-run"},{"title":"Get the customer-readable trace for one turn of a simulation run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/simulation/runs/{sim_run_id}/turns/{turn_id}/trace","href":"/api-reference/simulation_runs/get-the-customer-readable-trace-for-one-turn-of-a-simulation-run"}]},{"group":"evals","pages":[{"title":"List evaluators","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/evaluators","href":"/api-reference/evals/list-evaluators"},{"title":"Create an evaluator","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/evaluators","href":"/api-reference/evals/create-an-evaluator"},{"title":"Get an evaluator","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/evaluators/{evaluator_id}","href":"/api-reference/evals/get-an-evaluator"},{"title":"Update an evaluator","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/evaluators/{evaluator_id}","href":"/api-reference/evals/update-an-evaluator"},{"title":"Archive an evaluator","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/evaluators/{evaluator_id}/archive","href":"/api-reference/evals/archive-an-evaluator"},{"title":"List evaluator bindings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/evaluator-bindings","href":"/api-reference/evals/list-evaluator-bindings"},{"title":"Create an evaluator binding","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/evaluator-bindings","href":"/api-reference/evals/create-an-evaluator-binding"},{"title":"Get an evaluator binding","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/evaluator-bindings/{binding_id}","href":"/api-reference/evals/get-an-evaluator-binding"},{"title":"Delete an evaluator binding","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/evaluator-bindings/{binding_id}","href":"/api-reference/evals/delete-an-evaluator-binding"},{"title":"Update an evaluator binding","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/evaluator-bindings/{binding_id}","href":"/api-reference/evals/update-an-evaluator-binding"},{"title":"List eval runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/eval-runs","href":"/api-reference/evals/list-eval-runs"},{"title":"Day-bucketed eval-run activity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/eval-runs/activity","href":"/api-reference/evals/day-bucketed-eval-run-activity"},{"title":"Get an eval run (optionally with embedded evidence)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/eval-runs/{run_id}","href":"/api-reference/evals/get-an-eval-run-optionally-with-embedded-evidence"},{"title":"Delete a terminal eval run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/eval-runs/{run_id}","href":"/api-reference/evals/delete-a-terminal-eval-run"},{"title":"Retry a failed or errored eval run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/eval-runs/{run_id}/retry","href":"/api-reference/evals/retry-a-failed-or-errored-eval-run"},{"title":"Get an eval score","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/eval-scores/{score_id}","href":"/api-reference/evals/get-an-eval-score"},{"title":"List deterministic signals available to evaluators","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/evals/signals","href":"/api-reference/evals/list-deterministic-signals-available-to-evaluators"},{"title":"(dev only) Fabricate failing eval runs and fire the real eval.failed emitter","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/evals/synthesize-failure","href":"/api-reference/evals/dev-only-fabricate-failing-eval-runs-and-fire-the-real-evalfailed-emitter"},{"title":"Re-run all current evaluator bindings against a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sessions/{session_id}/reevaluate","href":"/api-reference/evals/re-run-all-current-evaluator-bindings-against-a-session"}]},{"group":"library","pages":[{"title":"Browse the persona library","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/library/personas","href":"/api-reference/library/browse-the-persona-library"},{"title":"Add a persona to the global library (Feather staff only)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/library/personas","href":"/api-reference/library/add-a-persona-to-the-global-library-feather-staff-only"},{"title":"Get a library persona","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/library/personas/{persona_id}","href":"/api-reference/library/get-a-library-persona"},{"title":"Update a library persona (Feather staff only)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/library/personas/{persona_id}","href":"/api-reference/library/update-a-library-persona-feather-staff-only"},{"title":"Delete a library persona (Feather staff only)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/library/personas/{persona_id}","href":"/api-reference/library/delete-a-library-persona-feather-staff-only"},{"title":"Install a library persona into the caller's workspace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/library/personas/{persona_id}/install","href":"/api-reference/library/install-a-library-persona-into-the-callers-workspace"},{"title":"Get the voice preset attached to a library persona","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/library/personas/{persona_id}/voice-config","href":"/api-reference/library/get-the-voice-preset-attached-to-a-library-persona"},{"title":"Attach a voice preset to a library persona (Feather staff only)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/library/personas/{persona_id}/voice-config","href":"/api-reference/library/attach-a-voice-preset-to-a-library-persona-feather-staff-only"},{"title":"Detach the voice preset from a library persona (Feather staff only)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/library/personas/{persona_id}/voice-config","href":"/api-reference/library/detach-the-voice-preset-from-a-library-persona-feather-staff-only"},{"title":"Update the voice preset on a library persona (Feather staff only)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/library/personas/{persona_id}/voice-config","href":"/api-reference/library/update-the-voice-preset-on-a-library-persona-feather-staff-only"},{"title":"Get a library persona's voice call behavior settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/library/personas/{persona_id}/call-settings","href":"/api-reference/library/get-a-library-personas-voice-call-behavior-settings"},{"title":"Update a library persona's voice call behavior settings (Feather staff only)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/library/personas/{persona_id}/call-settings","href":"/api-reference/library/update-a-library-personas-voice-call-behavior-settings-feather-staff-only"}]},{"group":"privacy","pages":[{"title":"Get privacy config for organization (creates defaults if none)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/privacy/config","href":"/api-reference/privacy/get-privacy-config-for-organization-creates-defaults-if-none"},{"title":"Upsert privacy config for organization","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/privacy/config","href":"/api-reference/privacy/upsert-privacy-config-for-organization"},{"title":"Delete privacy config (reverts to defaults)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/privacy/config","href":"/api-reference/privacy/delete-privacy-config-reverts-to-defaults"},{"title":"List PII scrub audit events","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/privacy/audit-logs","href":"/api-reference/privacy/list-pii-scrub-audit-events"},{"title":"Aggregate PII scrub stats","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/privacy/audit-stats","href":"/api-reference/privacy/aggregate-pii-scrub-stats"}]},{"group":"communication","pages":[{"title":"List org phone numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/communication/phone-numbers","href":"/api-reference/communication/list-org-phone-numbers"},{"title":"Register an org phone number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/communication/phone-numbers","href":"/api-reference/communication/register-an-org-phone-number"},{"title":"Get a phone number by id (org-scoped)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/communication/phone-numbers/{phone_number_id}","href":"/api-reference/communication/get-a-phone-number-by-id-org-scoped"},{"title":"Retire a phone number (soft, default) or hard-delete (force=true, internal only)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/communication/phone-numbers/{phone_number_id}","href":"/api-reference/communication/retire-a-phone-number-soft-default-or-hard-delete-force=true-internal-only"},{"title":"Update a phone number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/communication/phone-numbers/{phone_number_id}","href":"/api-reference/communication/update-a-phone-number"},{"title":"Restore a retired phone number to active","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/communication/phone-numbers/{phone_number_id}/restore","href":"/api-reference/communication/restore-a-retired-phone-number-to-active"},{"title":"List channel bindings for a phone number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/communication/phone-numbers/{phone_number_id}/channels","href":"/api-reference/communication/list-channel-bindings-for-a-phone-number"},{"title":"Bind an agent or team to a channel on a phone number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/communication/phone-numbers/{phone_number_id}/channels","href":"/api-reference/communication/bind-an-agent-or-team-to-a-channel-on-a-phone-number"},{"title":"Remove a channel binding","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/communication/phone-numbers/{phone_number_id}/channels/{channel_id}","href":"/api-reference/communication/remove-a-channel-binding"},{"title":"Replace the full binding set for a channel on a phone number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/communication/phone-numbers/{phone_number_id}/channels/{channel_type}","href":"/api-reference/communication/replace-the-full-binding-set-for-a-channel-on-a-phone-number"},{"title":"Get the org's compliance settings (creates default on first read)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/communication/compliance","href":"/api-reference/communication/get-the-orgs-compliance-settings-creates-default-on-first-read"},{"title":"Update the org's allowed-countries list","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/communication/compliance","href":"/api-reference/communication/update-the-orgs-allowed-countries-list"}]},{"group":"sms","pages":[{"title":"Send an outbound SMS (queued; delivered asynchronously)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/sms/send","href":"/api-reference/sms/send-an-outbound-sms-queued;-delivered-asynchronously"},{"title":"Get an SMS outbound operation's full delivery/reconciliation tree","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sms/operations/{operation_id}","href":"/api-reference/sms/get-an-sms-outbound-operations-full-deliveryreconciliation-tree"},{"title":"List SMS outbound operations for a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sms/operations","href":"/api-reference/sms/list-sms-outbound-operations-for-a-session"},{"title":"Get the org's SMS settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sms/settings","href":"/api-reference/sms/get-the-orgs-sms-settings"},{"title":"Update the org's SMS settings (partial)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/sms/settings","href":"/api-reference/sms/update-the-orgs-sms-settings-partial"}]},{"group":"email","pages":[{"title":"Begin connecting a mailbox via the hosted-auth flow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email/accounts/connect","href":"/api-reference/email/begin-connecting-a-mailbox-via-the-hosted-auth-flow"},{"title":"List connected mailboxes for the caller's organization","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email/accounts","href":"/api-reference/email/list-connected-mailboxes-for-the-callers-organization"},{"title":"Revoke the mailbox grant and retire the local row","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/email/accounts/{account_id}","href":"/api-reference/email/revoke-the-mailbox-grant-and-retire-the-local-row"},{"title":"Update mutable mailbox settings (e.g., default signature)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/email/accounts/{account_id}","href":"/api-reference/email/update-mutable-mailbox-settings-eg-default-signature"},{"title":"Read an email thread by Nylas provider_thread_id","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email/threads/{thread_id}","href":"/api-reference/email/read-an-email-thread-by-nylas-provider_thread_id"},{"title":"Ingest a canonical EmailInboundEvent for the given thread. Bypasses the vendor webhook; used by sandbox / replay / direct integrators.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email/threads/{thread_id}","href":"/api-reference/email/ingest-a-canonical-emailinboundevent-for-the-given-thread-bypasses-the-vendor-webhook;-used-by-sandbox-replay-direct-integrators"},{"title":"Delivery event audit trail for a single email message","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email/messages/{message_id}/events","href":"/api-reference/email/delivery-event-audit-trail-for-a-single-email-message"}]},{"group":"email-drafts","pages":[{"title":"List drafts for the caller's organization","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email/drafts","href":"/api-reference/email-drafts/list-drafts-for-the-callers-organization"},{"title":"Author a new outbound email draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email/drafts","href":"/api-reference/email-drafts/author-a-new-outbound-email-draft"},{"title":"Read one draft, including its ENG-420 audit snapshot when present","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/email/drafts/{draft_id}","href":"/api-reference/email-drafts/read-one-draft-including-its-eng-420-audit-snapshot-when-present"},{"title":"Soft-discard a draft (forbidden once dispatch has started)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/email/drafts/{draft_id}","href":"/api-reference/email-drafts/soft-discard-a-draft-forbidden-once-dispatch-has-started"},{"title":"Edit a draft (only allowed while status='draft')","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/email/drafts/{draft_id}","href":"/api-reference/email-drafts/edit-a-draft-only-allowed-while-status=draft"},{"title":"Approve a draft and dispatch it. The caller's OrgMember is recorded as the approver; the SendOrchestrator runs immediately.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/email/drafts/{draft_id}/approve","href":"/api-reference/email-drafts/approve-a-draft-and-dispatch-it-the-callers-orgmember-is-recorded-as-the-approver;-the-sendorchestrator-runs-immediately"}]},{"group":"voice","pages":[{"title":"List voice pipeline configs for the org","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/configs","href":"/api-reference/voice/list-voice-pipeline-configs-for-the-org"},{"title":"Create a voice pipeline config for an agent or persona (1:1)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/voice/configs","href":"/api-reference/voice/create-a-voice-pipeline-config-for-an-agent-or-persona-1:1"},{"title":"Get a voice pipeline config by id","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/configs/{config_id}","href":"/api-reference/voice/get-a-voice-pipeline-config-by-id"},{"title":"Delete a voice pipeline config","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/voice/configs/{config_id}","href":"/api-reference/voice/delete-a-voice-pipeline-config"},{"title":"Partial update of a voice pipeline config","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/voice/configs/{config_id}","href":"/api-reference/voice/partial-update-of-a-voice-pipeline-config"},{"title":"List saved voice configs for the org","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/saved-configs","href":"/api-reference/voice/list-saved-voice-configs-for-the-org"},{"title":"Create a reusable named voice config","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/voice/saved-configs","href":"/api-reference/voice/create-a-reusable-named-voice-config"},{"title":"Get a saved voice config by id","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/saved-configs/{config_id}","href":"/api-reference/voice/get-a-saved-voice-config-by-id"},{"title":"Delete a saved voice config","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/voice/saved-configs/{config_id}","href":"/api-reference/voice/delete-a-saved-voice-config"},{"title":"Partial update of a saved voice config","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/voice/saved-configs/{config_id}","href":"/api-reference/voice/partial-update-of-a-saved-voice-config"},{"title":"Get the effective voice pipeline config for an assistant (inline or saved)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/assistants/{agent_id}/voice-config","href":"/api-reference/voice/get-the-effective-voice-pipeline-config-for-an-assistant-inline-or-saved"},{"title":"Set the voice source (saved config link) for an assistant","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/voice/assistants/{agent_id}/voice-config-source","href":"/api-reference/voice/set-the-voice-source-saved-config-link-for-an-assistant"},{"title":"Detach an assistant from a saved config into an inline copy","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/voice/assistants/{agent_id}/voice-config/detach","href":"/api-reference/voice/detach-an-assistant-from-a-saved-config-into-an-inline-copy"},{"title":"Get the effective voice pipeline config for a team (inline or saved)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/teams/{team_id}/voice-config","href":"/api-reference/voice/get-the-effective-voice-pipeline-config-for-a-team-inline-or-saved"},{"title":"Set the voice source (saved config link) for a team","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/voice/teams/{team_id}/voice-config-source","href":"/api-reference/voice/set-the-voice-source-saved-config-link-for-a-team"},{"title":"Detach a team from a saved config into an inline copy","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/voice/teams/{team_id}/voice-config/detach","href":"/api-reference/voice/detach-a-team-from-a-saved-config-into-an-inline-copy"},{"title":"Get the voice pipeline config for a persona","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/personas/{persona_id}/voice-config","href":"/api-reference/voice/get-the-voice-pipeline-config-for-a-persona"},{"title":"Get the org's outbound calling-hours window","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/call-window","href":"/api-reference/voice/get-the-orgs-outbound-calling-hours-window"},{"title":"Set the org's outbound calling-hours window","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/voice/call-window","href":"/api-reference/voice/set-the-orgs-outbound-calling-hours-window"},{"title":"Get the org's queued-call expiry TTL","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/call-expiry","href":"/api-reference/voice/get-the-orgs-queued-call-expiry-ttl"},{"title":"Set the org's queued-call expiry TTL","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/voice/call-expiry","href":"/api-reference/voice/set-the-orgs-queued-call-expiry-ttl"},{"title":"Get the org's outbound holiday calendar","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/holiday-calendar","href":"/api-reference/voice/get-the-orgs-outbound-holiday-calendar"},{"title":"Set the org's outbound holiday calendar","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/voice/holiday-calendar","href":"/api-reference/voice/set-the-orgs-outbound-holiday-calendar"},{"title":"Get the org's outbound pause/cancel control state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/outbound/controls","href":"/api-reference/voice/get-the-orgs-outbound-pausecancel-control-state"},{"title":"Pause outbound dialing for the org, an agent, or a team","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/voice/outbound/pause","href":"/api-reference/voice/pause-outbound-dialing-for-the-org-an-agent-or-a-team"},{"title":"Resume outbound dialing for the org, an agent, or a team","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/voice/outbound/resume","href":"/api-reference/voice/resume-outbound-dialing-for-the-org-an-agent-or-a-team"},{"title":"Cancel the queued outbound backlog for the org, an agent, or a team","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/voice/outbound/cancel","href":"/api-reference/voice/cancel-the-queued-outbound-backlog-for-the-org-an-agent-or-a-team"},{"title":"List queued outbound calls (optionally filtered by agent/team/paused)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/outbound/queued","href":"/api-reference/voice/list-queued-outbound-calls-optionally-filtered-by-agentteampaused"},{"title":"Cancel a single queued outbound call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/voice/outbound/queued/{conversation_id}/cancel","href":"/api-reference/voice/cancel-a-single-queued-outbound-call"},{"title":"Pause a single queued outbound call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/voice/outbound/queued/{conversation_id}/pause","href":"/api-reference/voice/pause-a-single-queued-outbound-call"},{"title":"Resume a single paused outbound call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/voice/outbound/queued/{conversation_id}/resume","href":"/api-reference/voice/resume-a-single-paused-outbound-call"},{"title":"Replay a poison-terminalized delivery attempt after an operator repair","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/voice/outbound/attempts/{attempt_id}/replay","href":"/api-reference/voice/replay-a-poison-terminalized-delivery-attempt-after-an-operator-repair"},{"title":"List Voices","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/voices","href":"/api-reference/voice/list-voices"},{"title":"Get Voice","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/voices/{voice_id}","href":"/api-reference/voice/get-voice"},{"title":"List Tts Models","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/tts-models","href":"/api-reference/voice/list-tts-models"},{"title":"List Stt Models","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/stt-models","href":"/api-reference/voice/list-stt-models"},{"title":"Get Recording Playback Url","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/recordings/{recording_id}/playback-url","href":"/api-reference/voice/get-recording-playback-url"},{"title":"Get Warm Transfer Detail","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/voice/warm-transfer/{conversation_id}/transfer-detail","href":"/api-reference/voice/get-warm-transfer-detail"},{"title":"Outbound","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/voice/outbound","href":"/api-reference/voice/outbound"},{"title":"Web Call","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/voice/web-call","href":"/api-reference/voice/web-call"}]},{"group":"analytics","pages":[{"title":"Tool invocations bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/usage/timeseries","href":"/api-reference/analytics/tool-invocations-bucketed-over-time"},{"title":"Tool invocations grouped by tool_type","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/usage/by-type","href":"/api-reference/analytics/tool-invocations-grouped-by-tool_type"},{"title":"Top-N tools by invocation count","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/usage/by-tool","href":"/api-reference/analytics/top-n-tools-by-invocation-count"},{"title":"Tool invocations grouped by agent_id","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/usage/by-agent","href":"/api-reference/analytics/tool-invocations-grouped-by-agent_id"},{"title":"Distinct conversations per tool","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/usage/unique-conversations","href":"/api-reference/analytics/distinct-conversations-per-tool"},{"title":"Latency percentiles bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/performance/timeseries","href":"/api-reference/analytics/latency-percentiles-bucketed-over-time"},{"title":"Top-N slowest tools by p95","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/performance/by-tool","href":"/api-reference/analytics/top-n-slowest-tools-by-p95"},{"title":"Latency histogram across fixed buckets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/performance/distribution","href":"/api-reference/analytics/latency-histogram-across-fixed-buckets"},{"title":"Latency percentiles grouped by provider","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/performance/by-provider","href":"/api-reference/analytics/latency-percentiles-grouped-by-provider"},{"title":"Per-retry-count breakdown with avg/p95 latency","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/performance/retry-analysis","href":"/api-reference/analytics/per-retry-count-breakdown-with-avgp95-latency"},{"title":"Success rate (%) bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/reliability/success-rate-timeseries","href":"/api-reference/analytics/success-rate-%-bucketed-over-time"},{"title":"Failed-invocation count grouped by error_category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/reliability/error-breakdown","href":"/api-reference/analytics/failed-invocation-count-grouped-by-error_category"},{"title":"Failed-invocation count grouped by HTTP status_code","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/reliability/error-breakdown-by-status","href":"/api-reference/analytics/failed-invocation-count-grouped-by-http-status_code"},{"title":"Per-tool success rate ranked worst-first","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/reliability/ranking","href":"/api-reference/analytics/per-tool-success-rate-ranked-worst-first"},{"title":"Error count over time, split by error_category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/reliability/error-timeseries","href":"/api-reference/analytics/error-count-over-time-split-by-error_category"},{"title":"Current vs previous window error-rate comparison","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/reliability/error-trend","href":"/api-reference/analytics/current-vs-previous-window-error-rate-comparison"},{"title":"Per-tool timeout rate and latency tail","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/reliability/timeout-analysis","href":"/api-reference/analytics/per-tool-timeout-rate-and-latency-tail"},{"title":"Combined tool analytics dashboard envelope","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/dashboard","href":"/api-reference/analytics/combined-tool-analytics-dashboard-envelope"},{"title":"Per-tool z-score anomaly scan vs a rolling baseline (window \u003c= 1 day)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/monitoring/anomaly-detection","href":"/api-reference/analytics/per-tool-z-score-anomaly-scan-vs-a-rolling-baseline-window-\u003c=-1-day"},{"title":"Per-tool health (healthy/degraded/critical) with threshold violations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/tools/monitoring/health-check","href":"/api-reference/analytics/per-tool-health-healthydegradedcritical-with-threshold-violations"},{"title":"New-session counts bucketed over time, split by channel","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/sessions/volume-timeseries","href":"/api-reference/analytics/new-session-counts-bucketed-over-time-split-by-channel"},{"title":"Current distribution of sessions across statuses","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/sessions/status-breakdown","href":"/api-reference/analytics/current-distribution-of-sessions-across-statuses"},{"title":"Resolution-time percentiles by channel and priority","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/sessions/resolution-time","href":"/api-reference/analytics/resolution-time-percentiles-by-channel-and-priority"},{"title":"Time-to-first-response percentiles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/sessions/first-response-time","href":"/api-reference/analytics/time-to-first-response-percentiles"},{"title":"Per-channel comparison of session volume and quality","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/sessions/by-channel","href":"/api-reference/analytics/per-channel-comparison-of-session-volume-and-quality"},{"title":"Per-bucket escalation rate timeseries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/sessions/escalation-rate","href":"/api-reference/analytics/per-bucket-escalation-rate-timeseries"},{"title":"Histogram of message count per session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/sessions/message-distribution","href":"/api-reference/analytics/histogram-of-message-count-per-session"},{"title":"Turn-depth summary (avg / single-turn rate / quantiles)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/sessions/turn-depth","href":"/api-reference/analytics/turn-depth-summary-avg-single-turn-rate-quantiles"},{"title":"Terminated-call counts bucketed over time (completed / failed / no_answer)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/voice/volume-timeseries","href":"/api-reference/analytics/terminated-call-counts-bucketed-over-time-completed-failed-no_answer"},{"title":"Distribution of terminated calls across call-statuses","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/voice/outcome-breakdown","href":"/api-reference/analytics/distribution-of-terminated-calls-across-call-statuses"},{"title":"Per-bucket answer/connection rate over time (share of LIVE calls that connected)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/voice/answer-rate-timeseries","href":"/api-reference/analytics/per-bucket-answerconnection-rate-over-time-share-of-live-calls-that-connected"},{"title":"Outbound warm-transfer success rate and successful setup latency","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/voice/warm-transfers/summary","href":"/api-reference/analytics/outbound-warm-transfer-success-rate-and-successful-setup-latency"},{"title":"Outbound warm-transfer failures grouped by normalized reason","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/voice/warm-transfers/failure-reasons","href":"/api-reference/analytics/outbound-warm-transfer-failures-grouped-by-normalized-reason"},{"title":"Successful outbound warm-transfer setup latency over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/voice/warm-transfers/setup-latency-timeseries","href":"/api-reference/analytics/successful-outbound-warm-transfer-setup-latency-over-time"},{"title":"One-shot envelope of all outbound warm-transfer analytics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/voice/warm-transfers/dashboard","href":"/api-reference/analytics/one-shot-envelope-of-all-outbound-warm-transfer-analytics"},{"title":"Per-KB adoption rate and document counts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/knowledge/documents/adoption","href":"/api-reference/analytics/per-kb-adoption-rate-and-document-counts"},{"title":"Document-ingestion counts bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/knowledge/documents/ingestion-timeseries","href":"/api-reference/analytics/document-ingestion-counts-bucketed-over-time"},{"title":"Document processing-time percentiles bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/knowledge/documents/processing-latency","href":"/api-reference/analytics/document-processing-time-percentiles-bucketed-over-time"},{"title":"Failure-recovery analytics: failed / archived / cleaned_up / recovered","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/knowledge/documents/cleanup-summary","href":"/api-reference/analytics/failure-recovery-analytics:-failed-archived-cleaned_up-recovered"},{"title":"Search-call volume and latency percentiles bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/knowledge/documents/retrieval-timeseries","href":"/api-reference/analytics/search-call-volume-and-latency-percentiles-bucketed-over-time"},{"title":"Per-agent retrieval breakdown: volume, hit-rate, and avg latency","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/knowledge/documents/retrieval-by-agent","href":"/api-reference/analytics/per-agent-retrieval-breakdown:-volume-hit-rate-and-avg-latency"},{"title":"Top-N most-retrieved documents in a window","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/knowledge/documents/top-retrieved","href":"/api-reference/analytics/top-n-most-retrieved-documents-in-a-window"},{"title":"Documents currently active but unretrieved (or stale beyond N days)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/knowledge/documents/stale","href":"/api-reference/analytics/documents-currently-active-but-unretrieved-or-stale-beyond-n-days"},{"title":"Current-state KB inventory shape","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/knowledge/inventory","href":"/api-reference/analytics/current-state-kb-inventory-shape"},{"title":"Per-source latest sync state and time-since-last-event","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/knowledge/connectors/freshness","href":"/api-reference/analytics/per-source-latest-sync-state-and-time-since-last-event"},{"title":"One-shot envelope of every knowledge analytics pipe","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/knowledge/dashboard","href":"/api-reference/analytics/one-shot-envelope-of-every-knowledge-analytics-pipe"},{"title":"Memory episode counts bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/memory/ingestion-timeseries","href":"/api-reference/analytics/memory-episode-counts-bucketed-over-time"},{"title":"Memory coverage: users-with-memory / active-end-users (clamped 100%)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/memory/coverage","href":"/api-reference/analytics/memory-coverage:-users-with-memory-active-end-users-clamped-100%"},{"title":"Memory recall volume bucketed over time with hit/miss + latency percentiles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/memory/recalls/timeseries","href":"/api-reference/analytics/memory-recall-volume-bucketed-over-time-with-hitmiss-+-latency-percentiles"},{"title":"Per-user engagement quantiles (episodes/messages/recalls)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/memory/users/distribution","href":"/api-reference/analytics/per-user-engagement-quantiles-episodesmessagesrecalls"},{"title":"One-shot envelope of every memory analytics pipe","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/memory/dashboard","href":"/api-reference/analytics/one-shot-envelope-of-every-memory-analytics-pipe"},{"title":"Single-row dashboard summary: requests, match/error rates, latency","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/mocks/summary","href":"/api-reference/analytics/single-row-dashboard-summary:-requests-matcherror-rates-latency"},{"title":"Mock request volume bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/mocks/requests-timeseries","href":"/api-reference/analytics/mock-request-volume-bucketed-over-time"},{"title":"Mock latency percentiles bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/mocks/latency-timeseries","href":"/api-reference/analytics/mock-latency-percentiles-bucketed-over-time"},{"title":"Mock scenario match rate bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/mocks/match-rate-timeseries","href":"/api-reference/analytics/mock-scenario-match-rate-bucketed-over-time"},{"title":"Top-N mock scenarios by request count","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/mocks/top-scenarios","href":"/api-reference/analytics/top-n-mock-scenarios-by-request-count"},{"title":"One-shot envelope of every mock analytics pipe","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/mocks/dashboard","href":"/api-reference/analytics/one-shot-envelope-of-every-mock-analytics-pipe"},{"title":"Single-row summary: invocations, failures, success rate, latency (vs prior window)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/integrations/summary","href":"/api-reference/analytics/single-row-summary:-invocations-failures-success-rate-latency-vs-prior-window"},{"title":"Integration tool-call volume bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/integrations/usage-timeseries","href":"/api-reference/analytics/integration-tool-call-volume-bucketed-over-time"},{"title":"Effective success rate (%) bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/integrations/success-rate-timeseries","href":"/api-reference/analytics/effective-success-rate-%-bucketed-over-time"},{"title":"Integration tool-call latency percentiles bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/integrations/latency-timeseries","href":"/api-reference/analytics/integration-tool-call-latency-percentiles-bucketed-over-time"},{"title":"Volume + reliability + p95 latency grouped by integration_key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/integrations/by-integration","href":"/api-reference/analytics/volume-+-reliability-+-p95-latency-grouped-by-integration_key"},{"title":"Volume + reliability + p95 latency grouped by mode (vendor_api/feather_mcp_client)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/integrations/by-mode","href":"/api-reference/analytics/volume-+-reliability-+-p95-latency-grouped-by-mode-vendor_apifeather_mcp_client"},{"title":"Failures grouped by error_category (vendor_error / exception:\u003ctype>)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/integrations/error-breakdown","href":"/api-reference/analytics/failures-grouped-by-error_category-vendor_error-exception:\u003ctype>"},{"title":"One-shot envelope of every integration analytics pipe","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/integrations/dashboard","href":"/api-reference/analytics/one-shot-envelope-of-every-integration-analytics-pipe"},{"title":"Single-row connection-health summary: events, failures, success rate, latency","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/integrations/connections/summary","href":"/api-reference/analytics/single-row-connection-health-summary:-events-failures-success-rate-latency"},{"title":"Connection health grouped by integration_key (events, success rate, p95 latency)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/integrations/connections/by-integration","href":"/api-reference/analytics/connection-health-grouped-by-integration_key-events-success-rate-p95-latency"},{"title":"Connection lifecycle event volume (events/successes/failures) over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/integrations/connections/events-timeseries","href":"/api-reference/analytics/connection-lifecycle-event-volume-eventssuccessesfailures-over-time"},{"title":"Connection lifecycle effective success rate (%) over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/integrations/connections/success-rate-timeseries","href":"/api-reference/analytics/connection-lifecycle-effective-success-rate-%-over-time"},{"title":"Connection lifecycle failures grouped by event_type + error_category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/integrations/connections/failure-breakdown","href":"/api-reference/analytics/connection-lifecycle-failures-grouped-by-event_type-+-error_category"},{"title":"Per-policy violation rate + action counts within a window","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/policies/violation-rate","href":"/api-reference/analytics/per-policy-violation-rate-+-action-counts-within-a-window"},{"title":"Action counts split into taken (enforced) vs would-be (monitor-mode shadow)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/policies/action-breakdown","href":"/api-reference/analytics/action-counts-split-into-taken-enforced-vs-would-be-monitor-mode-shadow"},{"title":"Evaluation + violation volume bucketed over time (enforced vs shadow)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/policies/violations-timeseries","href":"/api-reference/analytics/evaluation-+-violation-volume-bucketed-over-time-enforced-vs-shadow"},{"title":"Enforce-after-measure: per monitor-mode policy, would-be impact + TTFT-delta","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/policies/monitor-rollout","href":"/api-reference/analytics/enforce-after-measure:-per-monitor-mode-policy-would-be-impact-+-ttft-delta"},{"title":"One-shot envelope of every policy analytics pipe","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/policies/dashboard","href":"/api-reference/analytics/one-shot-envelope-of-every-policy-analytics-pipe"},{"title":"Whether an enforcing agent_response policy is attached (TTFT disclaimer)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/policies/revisions/{revision_id}/disclaimer-status","href":"/api-reference/analytics/whether-an-enforcing-agent_response-policy-is-attached-ttft-disclaimer"},{"title":"Model-router cost bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/cost/by-org-daily","href":"/api-reference/analytics/model-router-cost-bucketed-over-time"},{"title":"Top-N agents by model-router spend","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/cost/by-agent","href":"/api-reference/analytics/top-n-agents-by-model-router-spend"},{"title":"Top-N served models by spend","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/cost/by-model","href":"/api-reference/analytics/top-n-served-models-by-spend"},{"title":"Cost and reliability grouped by operation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/cost/by-operation","href":"/api-reference/analytics/cost-and-reliability-grouped-by-operation"},{"title":"Cost and reliability grouped by provider","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/cost/by-provider","href":"/api-reference/analytics/cost-and-reliability-grouped-by-provider"},{"title":"Top-N sessions (conversations) by spend","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/cost/by-session","href":"/api-reference/analytics/top-n-sessions-conversations-by-spend"},{"title":"Top-N router configs by model-router spend","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/cost/by-router-config","href":"/api-reference/analytics/top-n-router-configs-by-model-router-spend"},{"title":"Per-model token usage breakdown (incl. billed tokens)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/tokens/breakdown","href":"/api-reference/analytics/per-model-token-usage-breakdown-incl-billed-tokens"},{"title":"Per-model prompt-cache usage and cost","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/cache/savings","href":"/api-reference/analytics/per-model-prompt-cache-usage-and-cost"},{"title":"Per-model latency percentiles (p50/p95/p99)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/latency","href":"/api-reference/analytics/per-model-latency-percentiles-p50p95p99"},{"title":"Fallback rate bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/fallback/rate","href":"/api-reference/analytics/fallback-rate-bucketed-over-time"},{"title":"Terminal error rate over a window","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/error/rate","href":"/api-reference/analytics/terminal-error-rate-over-a-window"},{"title":"Embedding cost + tokens bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/embeddings/cost/by-org-daily","href":"/api-reference/analytics/embedding-cost-+-tokens-bucketed-over-time"},{"title":"Top-N embedding models by spend","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/embeddings/cost/by-model","href":"/api-reference/analytics/top-n-embedding-models-by-spend"},{"title":"Embedding spend grouped by call site","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/embeddings/cost/by-source","href":"/api-reference/analytics/embedding-spend-grouped-by-call-site"},{"title":"Top-N knowledge bases by embedding spend","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/embeddings/cost/by-kb","href":"/api-reference/analytics/top-n-knowledge-bases-by-embedding-spend"},{"title":"Embedding reliability + throughput per model","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/embeddings/reliability","href":"/api-reference/analytics/embedding-reliability-+-throughput-per-model"},{"title":"Smart-routed vs non-smart-routed cost \u0026 reliability","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/smart-routing/impact","href":"/api-reference/analytics/smart-routed-vs-non-smart-routed-cost-\u0026-reliability"},{"title":"Terminal errors grouped by error category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/error/breakdown","href":"/api-reference/analytics/terminal-errors-grouped-by-error-category"},{"title":"Terminal error rate bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/error/timeseries","href":"/api-reference/analytics/terminal-error-rate-bucketed-over-time"},{"title":"Current vs previous equal-length window spend","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/cost/trend","href":"/api-reference/analytics/current-vs-previous-equal-length-window-spend"},{"title":"Cost per terminal successful response, per model","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/cost/per-successful-response","href":"/api-reference/analytics/cost-per-terminal-successful-response-per-model"},{"title":"Latency percentiles bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/latency/timeseries","href":"/api-reference/analytics/latency-percentiles-bucketed-over-time-1"},{"title":"Time-to-first-token percentiles over time (streaming)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/latency/ttft-timeseries","href":"/api-reference/analytics/time-to-first-token-percentiles-over-time-streaming"},{"title":"Time-to-first-token percentiles per model (streaming)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/latency/ttft-by-model","href":"/api-reference/analytics/time-to-first-token-percentiles-per-model-streaming"},{"title":"Primary vs fallback leg cost \u0026 reliability","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/fallback/analysis","href":"/api-reference/analytics/primary-vs-fallback-leg-cost-\u0026-reliability"},{"title":"Token-usage efficiency ratios per model","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/tokens/efficiency","href":"/api-reference/analytics/token-usage-efficiency-ratios-per-model"},{"title":"One-shot LLM analytics dashboard (fan-out of 6 pipes)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/dashboard","href":"/api-reference/analytics/one-shot-llm-analytics-dashboard-fan-out-of-6-pipes"},{"title":"One-shot embedding analytics dashboard (fan-out of 4 pipes)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/embeddings/dashboard","href":"/api-reference/analytics/one-shot-embedding-analytics-dashboard-fan-out-of-4-pipes"},{"title":"Embedding cost + error rate per provider","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/embeddings/cost/by-provider","href":"/api-reference/analytics/embedding-cost-+-error-rate-per-provider"},{"title":"Embedding failures grouped by error category","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/embeddings/error/breakdown","href":"/api-reference/analytics/embedding-failures-grouped-by-error-category"},{"title":"First-try vs retry embedding spend (wasted re-embeds)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/embeddings/retry/impact","href":"/api-reference/analytics/first-try-vs-retry-embedding-spend-wasted-re-embeds"},{"title":"Embedding latency percentiles bucketed over time","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/embeddings/latency/timeseries","href":"/api-reference/analytics/embedding-latency-percentiles-bucketed-over-time"},{"title":"Dense vs sparse embedding cost / throughput / reliability","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/analytics/model-router/embeddings/dense-vs-sparse","href":"/api-reference/analytics/dense-vs-sparse-embedding-cost-throughput-reliability"}]},{"group":"knowledge-gap-analytics","pages":[{"title":"Headline knowledge-gap KPIs for the org over a date window","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-gaps/summary","href":"/api-reference/knowledge-gap-analytics/headline-knowledge-gap-kpis-for-the-org-over-a-date-window"},{"title":"Paginated list of knowledge-gap clusters with filters and sort","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-gaps/clusters","href":"/api-reference/knowledge-gap-analytics/paginated-list-of-knowledge-gap-clusters-with-filters-and-sort"},{"title":"Detail view of a single knowledge-gap cluster","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-gaps/clusters/{cluster_id}","href":"/api-reference/knowledge-gap-analytics/detail-view-of-a-single-knowledge-gap-cluster"},{"title":"Resolve conversation turns referenced by knowledge-gap evidence","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-gaps/evidence/turns","href":"/api-reference/knowledge-gap-analytics/resolve-conversation-turns-referenced-by-knowledge-gap-evidence"},{"title":"Per-session analysis result, signals, gap events, and linked clusters","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-gaps/sessions/{session_id}/analysis","href":"/api-reference/knowledge-gap-analytics/per-session-analysis-result-signals-gap-events-and-linked-clusters"},{"title":"Per-document retrieval / citation / implication counts with failure rate","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-gaps/documents/health","href":"/api-reference/knowledge-gap-analytics/per-document-retrieval-citation-implication-counts-with-failure-rate"},{"title":"Assign or clear the owner of a knowledge-gap cluster","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/knowledge-gaps/clusters/{cluster_id}/owner","href":"/api-reference/knowledge-gap-analytics/assign-or-clear-the-owner-of-a-knowledge-gap-cluster"},{"title":"Transition a cluster through the lifecycle state machine","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/knowledge-gaps/clusters/{cluster_id}/status","href":"/api-reference/knowledge-gap-analytics/transition-a-cluster-through-the-lifecycle-state-machine"},{"title":"Audit-trail of lifecycle transitions for a cluster","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/knowledge-gaps/clusters/{cluster_id}/lifecycle-events","href":"/api-reference/knowledge-gap-analytics/audit-trail-of-lifecycle-transitions-for-a-cluster"}]},{"group":"billing","pages":[{"title":"Plans x features grid plus the org's current plan and usage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/billing/matrix","href":"/api-reference/billing/plans-x-features-grid-plus-the-orgs-current-plan-and-usage"},{"title":"Time-bucketed usage per metered feature over a range","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/billing/usage","href":"/api-reference/billing/time-bucketed-usage-per-metered-feature-over-a-range"},{"title":"Create a Stripe billing-portal URL for the org (manage / cancel subscription)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/billing/portal","href":"/api-reference/billing/create-a-stripe-billing-portal-url-for-the-org-manage-cancel-subscription"}]},{"group":"extraction-schemas","pages":[{"title":"List extraction schema versions for an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/extraction-schemas","href":"/api-reference/extraction-schemas/list-extraction-schema-versions-for-an-agent"},{"title":"Create a new extraction schema version for an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/assistants/{agent_id}/extraction-schemas","href":"/api-reference/extraction-schemas/create-a-new-extraction-schema-version-for-an-agent"},{"title":"Get one extraction schema version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/assistants/{agent_id}/extraction-schemas/{schema_id}","href":"/api-reference/extraction-schemas/get-one-extraction-schema-version"},{"title":"Update extraction schema (rename, activate, archive)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/assistants/{agent_id}/extraction-schemas/{schema_id}","href":"/api-reference/extraction-schemas/update-extraction-schema-rename-activate-archive"}]},{"group":"extractions","pages":[{"title":"Get latest structured extraction for a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations/{session_id}/extraction","href":"/api-reference/extractions/get-latest-structured-extraction-for-a-session"},{"title":"List extraction jobs for a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/conversations/{session_id}/extraction/jobs","href":"/api-reference/extractions/list-extraction-jobs-for-a-session"},{"title":"Re-run extraction for a closed session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/conversations/{session_id}/extraction:rerun","href":"/api-reference/extractions/re-run-extraction-for-a-closed-session"}]},{"group":"mcp-chat","pages":[{"title":"List the MCP tools available to the chat surface","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/mcp-chat/tools","href":"/api-reference/mcp-chat/list-the-mcp-tools-available-to-the-chat-surface"},{"title":"Stream an LLM chat turn that uses the MCP server as its toolbelt","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/mcp-chat/stream","href":"/api-reference/mcp-chat/stream-an-llm-chat-turn-that-uses-the-mcp-server-as-its-toolbelt"}]},{"group":"ask-feather","pages":[{"title":"Get Workflows","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/ask-feather/workflows","href":"/api-reference/ask-feather/get-workflows"},{"title":"Get Ask Feather Limits","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/ask-feather/limits","href":"/api-reference/ask-feather/get-ask-feather-limits"},{"title":"Update Ask Feather Limits","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/ask-feather/limits","href":"/api-reference/ask-feather/update-ask-feather-limits"},{"title":"List Sessions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/ask-feather/sessions","href":"/api-reference/ask-feather/list-sessions"},{"title":"Create Session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/ask-feather/sessions","href":"/api-reference/ask-feather/create-session"},{"title":"Get Session Detail","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/ask-feather/sessions/{session_id}","href":"/api-reference/ask-feather/get-session-detail"},{"title":"Delete Session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/ask-feather/sessions/{session_id}","href":"/api-reference/ask-feather/delete-session"},{"title":"List Session Messages","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/ask-feather/sessions/{session_id}/messages","href":"/api-reference/ask-feather/list-session-messages"},{"title":"Send Message","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/ask-feather/sessions/{session_id}/messages","href":"/api-reference/ask-feather/send-message"},{"title":"Approve Message","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/ask-feather/sessions/{session_id}/messages/approve","href":"/api-reference/ask-feather/approve-message"},{"title":"Stream Turn","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/ask-feather/sessions/{session_id}/turns/{turn_id}/stream","href":"/api-reference/ask-feather/stream-turn"},{"title":"Cancel Turn","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/ask-feather/sessions/{session_id}/turns/{turn_id}/cancel","href":"/api-reference/ask-feather/cancel-turn"}]},{"group":"webhooks","pages":[{"title":"Create a hosted Svix App Portal link for the caller's org","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webhooks/portal","href":"/api-reference/webhooks/create-a-hosted-svix-app-portal-link-for-the-callers-org"},{"title":"List supported customer webhook event types","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webhooks/event-catalog","href":"/api-reference/webhooks/list-supported-customer-webhook-event-types"}]},{"group":"workflows","pages":[{"title":"List workflows","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/workflows","href":"/api-reference/workflows/list-workflows"},{"title":"Create a workflow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/workflows","href":"/api-reference/workflows/create-a-workflow"},{"title":"Generate a workflow from a brief, template, or blank scaffold","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/workflows/generate","href":"/api-reference/workflows/generate-a-workflow-from-a-brief-template-or-blank-scaffold"},{"title":"List available workflow templates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/workflows/templates","href":"/api-reference/workflows/list-available-workflow-templates"},{"title":"Get a workflow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/workflows/{workflow_id}","href":"/api-reference/workflows/get-a-workflow"},{"title":"Update a workflow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/workflows/{workflow_id}","href":"/api-reference/workflows/update-a-workflow"},{"title":"Delete a workflow","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/workflows/{workflow_id}","href":"/api-reference/workflows/delete-a-workflow"},{"title":"Bulk delete workflows","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/workflows/bulk-delete","href":"/api-reference/workflows/bulk-delete-workflows"},{"title":"List parent workflows that embed this component","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/workflows/{workflow_id}/dependents","href":"/api-reference/workflows/list-parent-workflows-that-embed-this-component"},{"title":"List workflow revisions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/workflows/{workflow_id}/revisions","href":"/api-reference/workflows/list-workflow-revisions"},{"title":"Create a workflow revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/workflows/{workflow_id}/revisions","href":"/api-reference/workflows/create-a-workflow-revision"},{"title":"Get a workflow revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/workflows/revisions/{revision_id}","href":"/api-reference/workflows/get-a-workflow-revision"},{"title":"Update a workflow revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/workflows/revisions/{revision_id}","href":"/api-reference/workflows/update-a-workflow-revision"},{"title":"Delete a workflow revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/workflows/revisions/{revision_id}","href":"/api-reference/workflows/delete-a-workflow-revision"},{"title":"Diff two workflow revisions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/workflows/{workflow_id}/revisions/diff","href":"/api-reference/workflows/diff-two-workflow-revisions"},{"title":"Get a workflow revision's compiled graph","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/workflows/revisions/{revision_id}/graph","href":"/api-reference/workflows/get-a-workflow-revisions-compiled-graph"},{"title":"Validate and manually replace a workflow revision's compiled graph","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/workflows/revisions/{revision_id}/graph","href":"/api-reference/workflows/validate-and-manually-replace-a-workflow-revisions-compiled-graph"},{"title":"Validate a workflow graph without saving it","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/workflows/revisions/{revision_id}/graph/validate","href":"/api-reference/workflows/validate-a-workflow-graph-without-saving-it"},{"title":"Apply id-addressed PATCH ops to a workflow revision's graph","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/workflows/revisions/{revision_id}/graph/ops","href":"/api-reference/workflows/apply-id-addressed-patch-ops-to-a-workflow-revisions-graph"},{"title":"Get a workflow revision's tool-input defaults (enriched view)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/workflows/revisions/{revision_id}/tool-input-defaults","href":"/api-reference/workflows/get-a-workflow-revisions-tool-input-defaults-enriched-view"},{"title":"Replace a workflow revision's tool-input defaults (draft-only)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json put /v1/workflows/revisions/{revision_id}/tool-input-defaults","href":"/api-reference/workflows/replace-a-workflow-revisions-tool-input-defaults-draft-only"},{"title":"Set the active workflow revision","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/workflows/{workflow_id}/set-active-revision","href":"/api-reference/workflows/set-the-active-workflow-revision"}]},{"group":"workflow-playground","pages":[{"title":"Create Session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/workflow/playground/sessions","href":"/api-reference/workflow-playground/create-session"},{"title":"Send Message","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/workflow/playground/sessions/{session_id}/messages","href":"/api-reference/workflow-playground/send-message"},{"title":"Resume Approval","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/workflow/playground/sessions/{session_id}/resume","href":"/api-reference/workflow-playground/resume-approval"},{"title":"Get Session Info","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/workflow/playground/sessions/{session_id}","href":"/api-reference/workflow-playground/get-session-info"}]}]}]},"title":"Resolve inherited and node-local tools for a revision's flow - Feather","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-7TwLLapg.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js","Markdown-DKsLa3wy.js","clsx-CefdjKz2.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BaREnp3o.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sgx_0XzF.js"]}