An API key from your Devic console, sent as Authorization: Bearer <key>. An embedded front end sends a tenant-session token instead, so no API key reaches the browser, and an OAuth integration sends its access token. Missing, invalid or expired credentials get a 401. See Authentication.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Devic Documentation","description":"Turn your SaaS AI-native with Devic. Build, deploy, and operate agents, assistants, MCP tools, RAG, and AI workflows from one platform.","colors":{"primary":"#4764E6","light":"#6F8EFF","dark":"#2C3A8C"},"logo":{"light":"https://mintcdn.com/devic/gabzi_FqrplBFOjV/logo/devic-light.svg?fit=max\u0026auto=format\u0026n=gabzi_FqrplBFOjV\u0026q=85\u0026s=ec3c30fed45bb07177168ad49854c2c5","dark":"https://mintcdn.com/devic/gabzi_FqrplBFOjV/logo/devic-dark.svg?fit=max\u0026auto=format\u0026n=gabzi_FqrplBFOjV\u0026q=85\u0026s=2b637f4060c2001b87f21305b19a4b9c","href":"https://app.devic.ai/"},"favicon":{"light":"https://mintcdn.com/devic/gabzi_FqrplBFOjV/favicon.svg?fit=max\u0026auto=format\u0026n=gabzi_FqrplBFOjV\u0026q=85\u0026s=78aacd249630ae953a05222ef3ca5b69","dark":"https://mintcdn.com/devic/gabzi_FqrplBFOjV/favicon.svg?fit=max\u0026auto=format\u0026n=gabzi_FqrplBFOjV\u0026q=85\u0026s=78aacd249630ae953a05222ef3ca5b69"},"navbar":{"links":[{"href":"mailto:info@devic.ai","label":"Support"}],"primary":{"type":"button","label":"Login","href":"https://app.devic.ai/"}},"footer":{"socials":{"x":"https://x.com/devic_ai","github":"https://github.com/devicai","linkedin":"https://www.linkedin.com/company/devicai"}},"integrations":{"ga4":{"measurementId":"G-8K836ZN854"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"thumbnails":{"background":"https://mintcdn.com/devic/w7qYRbVpXOedcE7E/images/5e60580e-c9b6-41ae-a6e5-984cf4648873.png?fit=max\u0026auto=format\u0026n=w7qYRbVpXOedcE7E\u0026q=85\u0026s=4f2220729f821080ee1ca120071a72a7"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"devic","hasAudioNarration":false,"actualSubdomain":"devic","customDomains":["docs.devic.ai"],"gitSource":{"type":"github","owner":"devicai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6aabf34eccf8fcf4f066c745","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"default","tag":"API reference","count":186},{"language":"default","tag":"Devic","count":89},{"language":"default","tag":"Agents","count":48},{"language":"default","tag":"Assistants","count":31},{"language":"default","tag":"Knowledge","count":25},{"language":"default","tag":"Environments","count":18},{"language":"default","tag":"Integrations","count":15},{"language":"default","tag":"Tool Servers","count":14},{"language":"default","tag":"MCPs","count":13},{"language":"default","tag":"Guardrails","count":12}]},"assistantConfig":{"enableStarterQuestions":false},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/endpoint/post-api-v1-agents-threads-threadid-approval","slug":"/api-reference/endpoint/post-api-v1-agents-threads-threadid-approval","pageMetadata":{"title":"Handle thread approval request","openapi":"POST /v1/agents/threads/{threadId}/approval","description":"Approves or rejects a thread execution that is awaiting approval. This is part of the human-in-the-loop workflow.","href":"/api-reference/endpoint/post-api-v1-agents-threads-threadid-approval"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Approves or rejects a thread execution that is awaiting approval. This is part of the human-in-the-loop workflow.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Handle thread approval request","openapi":"POST /v1/agents/threads/{threadId}/approval","description":"Approves or rejects a thread execution that is awaiting approval. This is part of the human-in-the-loop workflow.","href":"/api-reference/endpoint/post-api-v1-agents-threads-threadid-approval"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Agents"],"summary":"Handle thread approval","description":"Approves or rejects a thread execution that is awaiting approval. This is part of the human-in-the-loop workflow.","operationId":"handleThreadApproval","security":["c33cfcd1-2b08-473c-ab0f-f8bf988ba0e0"],"parameters":["9f16ed21-49d0-44f4-b2fc-396b878e1bff"],"requestBody":"df2e4c5e-1e59-4105-8f6c-8459d1f58a43","responses":{"200":"45886421-3535-4412-9a48-368c6947ab64","400":"4aef0194-9ddb-4c27-ae8f-374676e4822e","401":"cddef857-f45b-4f36-9c2b-273d6993565f","404":"eb4fb31a-5cd3-48b1-ad18-840ec90eca6b","429":"d6c05121-09f3-45fc-8a15-54572503b238","500":"bea012df-4a77-4f03-b8d4-342b4da46daa"},"method":"post","type":"path","servers":["e360797e-985a-42f5-b140-d9e4bd40f85b","5c6b8660-0b3a-4bee-8364-9993adaed626"],"path":"/v1/agents/threads/{threadId}/approval","baseUrlOptions":["https://api.devic.ai","https://staging-api.devic.ai"],"title":"Handle thread approval","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"9f16ed21-49d0-44f4-b2fc-396b878e1bff":{"name":"threadId","in":"path","required":true,"description":"UUID of the thread awaiting approval","schema":{"type":"string","format":"uuid","isRequired":true,"description":"UUID of the thread awaiting approval","uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"requestBody":{"required":true,"description":"Approval decision and optional comment","content":{"application/json":{"schema":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["PENDING","APPROVED","REJECTED"],"description":"Status of an execution awaiting approval","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"comment":{"type":"string","description":"Optional comment about the approval decision","uniqueKey":"comment","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"comment":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"45886421-3535-4412-9a48-368c6947ab64":{"description":"Approval decision processed successfully","content":{"application/json":{"schema":{"type":"object","required":["id","agentId","status","createdAt","messages"],"properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the thread","isRequired":true,"uniqueKey":"id","typeLabel":"string\u003cuuid>"},"agentId":{"type":"string","format":"uuid","description":"Unique identifier for the associated agent","isRequired":true,"uniqueKey":"agentId","typeLabel":"string\u003cuuid>"},"status":{"type":"string","enum":["RUNNING","PAUSED","COMPLETED","FAILED","AWAITING_APPROVAL"],"description":"Current status of the thread","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the thread was created","isRequired":true,"uniqueKey":"createdAt","typeLabel":"string\u003cdate-time>"},"messages":{"type":"array","items":{"type":"object","required":["role","content"],"properties":{"role":{"type":"string","enum":["user","assistant","system","tool"],"description":"Role of the message sender","isRequired":true,"uniqueKey":"messages.items.[INDEX].role","typeLabel":"enum\u003cstring>"},"content":{"type":"string","description":"Content of the message","isRequired":true,"uniqueKey":"messages.items.[INDEX].content","typeLabel":"string"},"name":{"type":"string","description":"Name of the tool or function (for tool messages)","uniqueKey":"messages.items.[INDEX].name","typeLabel":"string"},"tool_call_id":{"type":"string","description":"Unique identifier for the tool call","uniqueKey":"messages.items.[INDEX].tool_call_id","typeLabel":"string"}},"uniqueKey":"messages.items.[INDEX]","typeLabel":"object"},"description":"Messages exchanged in the thread","isRequired":true,"uniqueKey":"messages","typeLabel":"object[]"},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp when the thread was last updated","uniqueKey":"updatedAt","typeLabel":"string\u003cdate-time>"},"metadata":{"type":"object","additionalProperties":true,"description":"Custom metadata associated with the thread","uniqueKey":"metadata","typeLabel":"object"},"cost":{"type":"number","format":"float","description":"Total cost accumulated by this thread","uniqueKey":"cost","typeLabel":"number\u003cfloat>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","agentId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","status":"RUNNING","createdAt":"2023-11-07T05:31:56Z","messages":[{"role":"user","content":"\u003cstring>","name":"\u003cstring>","tool_call_id":"\u003cstring>"}],"updatedAt":"2023-11-07T05:31:56Z","metadata":{},"cost":123}}},"exampleType":"generated"}},"exampleType":"generated"},"4aef0194-9ddb-4c27-ae8f-374676e4822e":{"description":"Invalid approval payload","content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"Error code","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"description":"Additional details about the error","uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"cddef857-f45b-4f36-9c2b-273d6993565f":{"description":"Unauthorized - Invalid or missing token","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"eb4fb31a-5cd3-48b1-ad18-840ec90eca6b":{"description":"Thread not found or not awaiting approval","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"d6c05121-09f3-45fc-8a15-54572503b238":{"description":"Too Many Requests - Rate limit exceeded","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"bea012df-4a77-4f03-b8d4-342b4da46daa":{"description":"Internal Server Error","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"c33cfcd1-2b08-473c-ab0f-f8bf988ba0e0":{"bearerAuth":{"type":"http","scheme":"bearer","description":"An API key from your Devic console, sent as `Authorization: Bearer \u003ckey>`. An embedded front end sends a tenant-session token instead, so no API key reaches the browser, and an OAuth integration sends its access token. Missing, invalid or expired credentials get a `401`. See [Authentication](/api-reference/introduction#authentication).","scopes":[]}}},"servers":{"e360797e-985a-42f5-b140-d9e4bd40f85b":{"url":"https://api.devic.ai","description":"Production server"},"5c6b8660-0b3a-4bee-8364-9993adaed626":{"url":"https://staging-api.devic.ai","description":"Staging server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"An API key from your Devic console, sent as `Authorization: Bearer \u003ckey>`. An embedded front end sends a tenant-session token instead, so no API key reaches the browser, and an OAuth integration sends its access token. Missing, invalid or expired credentials get a `401`. See [Authentication](/api-reference/introduction#authentication).","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An API key from your Devic console, sent as `Authorization: Bearer \u003ckey>`. An embedded front end sends a tenant-session token instead, so no API key reaches the browser, and an OAuth integration sends its access token. Missing, invalid or expired credentials get a `401`. See [Authentication](/api-reference/introduction#authentication).","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"devic","siteName":"Devic Documentation","title":"Handle thread approval request - Devic Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-26T17:34:02.034Z","originalFileLocation":"api-reference/endpoint/post-api-v1-agents-threads-threadid-approval.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=\"Approves or rejects a thread execution that is awaiting approval. This is part of the human-in-the-loop workflow.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Devic Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/devic/oZEAyyhd9yq0DCvd/_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/devic/oZEAyyhd9yq0DCvd/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/devic/oZEAyyhd9yq0DCvd/_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/devic/oZEAyyhd9yq0DCvd/_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/devic/oZEAyyhd9yq0DCvd/_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/devic/oZEAyyhd9yq0DCvd/_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/devic/oZEAyyhd9yq0DCvd/_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/devic/oZEAyyhd9yq0DCvd/_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/devic/oZEAyyhd9yq0DCvd/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Handle thread approval request - Devic Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Approves or rejects a thread execution that is awaiting approval. This is part of the human-in-the-loop workflow.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Devic Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.devic.ai/api-reference/endpoint/post-api-v1-agents-threads-threadid-approval\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://devic.mintlify.site/_mintlify/api/og/v2?division=Agents\u0026amp;title=Handle+thread+approval+request\u0026amp;description=Approves+or+rejects+a+thread+execution+that+is+awaiting+approval.+This+is+part+of+the+human-in-the-loop+workflow.\u0026amp;theme=95b260005b3b0c5cfb2d00ae\u0026amp;signature=f934c642eba3e97917c206684ba4e9b26f11822f143f11ed5b3059ab85ad13d1\">\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=\"Handle thread approval request - Devic Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Approves or rejects a thread execution that is awaiting approval. This is part of the human-in-the-loop workflow.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://devic.mintlify.site/_mintlify/api/og/v2?division=Agents\u0026amp;title=Handle+thread+approval+request\u0026amp;description=Approves+or+rejects+a+thread+execution+that+is+awaiting+approval.+This+is+part+of+the+human-in-the-loop+workflow.\u0026amp;theme=95b260005b3b0c5cfb2d00ae\u0026amp;signature=f934c642eba3e97917c206684ba4e9b26f11822f143f11ed5b3059ab85ad13d1\">\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/devic/oZEAyyhd9yq0DCvd/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Devic Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4764E6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.devic.ai/api-reference/endpoint/post-api-v1-agents-threads-threadid-approval\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoint/post-api-v1-agents-threads-threadid-approval.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.devic.ai/#organization\",\"name\":\"Devic Documentation\",\"url\":\"https://docs.devic.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/devic/gabzi_FqrplBFOjV/logo/devic-light.svg?fit=max\u0026auto=format\u0026n=gabzi_FqrplBFOjV\u0026q=85\u0026s=ec3c30fed45bb07177168ad49854c2c5\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.devic.ai#website\",\"name\":\"Devic Documentation\",\"url\":\"https://docs.devic.ai\",\"publisher\":{\"@id\":\"https://docs.devic.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.devic.ai/api-reference/endpoint/post-api-v1-agents-threads-threadid-approval#webpage\",\"url\":\"https://docs.devic.ai/api-reference/endpoint/post-api-v1-agents-threads-threadid-approval\",\"name\":\"Handle thread approval request\",\"description\":\"Approves or rejects a thread execution that is awaiting approval. This is part of the human-in-the-loop workflow.\",\"dateModified\":\"2026-01-26T17:34:02.034Z\",\"isPartOf\":{\"@id\":\"https://docs.devic.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.devic.ai/api-reference/endpoint/post-api-v1-agents-threads-threadid-approval#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.devic.ai/api-reference/endpoint/post-api-v1-agents-threads-threadid-approval#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Agents\",\"item\":\"https://docs.devic.ai/api-reference/endpoint/get-api-v1-agents\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Handle thread approval request\",\"item\":\"https://docs.devic.ai/api-reference/endpoint/post-api-v1-agents-threads-threadid-approval\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.devic.ai/api-reference/endpoint/post-api-v1-agents-threads-threadid-approval#apireference\",\"headline\":\"Handle thread approval request\",\"name\":\"Handle thread approval request\",\"description\":\"Approves or rejects a thread execution that is awaiting approval. This is part of the human-in-the-loop workflow.\",\"url\":\"https://docs.devic.ai/api-reference/endpoint/post-api-v1-agents-threads-threadid-approval\",\"mainEntityOfPage\":{\"@id\":\"https://docs.devic.ai/api-reference/endpoint/post-api-v1-agents-threads-threadid-approval#webpage\"},\"dateModified\":\"2026-01-26T17:34:02.034Z\",\"publisher\":{\"@id\":\"https://docs.devic.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.devic.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Devic Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Devic Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/endpoint/post-api-v1-agents-threads-threadid-approval.md","siteName":"Devic Documentation","nav":{"global":null,"tabs":[{"tab":"Devic","pages":[{"title":"Devic","href":"/devic/introduction"}]},{"tab":"API reference","groups":[{"group":"Introduction","pages":[{"title":"Introduction","href":"/api-reference/introduction"}]},{"group":"Agents","pages":[{"title":"List all agents","openapi":"GET /v1/agents","href":"/api-reference/endpoint/get-api-v1-agents"},{"title":"Create a new agent","openapi":"POST /v1/agents","href":"/api-reference/endpoint/post-api-v1-agents"},{"title":"Get agent by ID","openapi":"GET /v1/agents/{agentId}","href":"/api-reference/endpoint/get-api-v1-agents-agentid"},{"title":"Update an agent","openapi":"PATCH /v1/agents/{agentId}","href":"/api-reference/endpoint/patch-api-v1-agents-agentid"},{"title":"Delete an agent","openapi":"DELETE /v1/agents/{agentId}","href":"/api-reference/endpoint/delete-api-v1-agents-agentid"},{"title":"Get unique tags from all agent threads","openapi":"GET /v1/agents/threads/tags","href":"/api-reference/endpoint/get-api-v1-agents-threads-tags"},{"title":"Get a specific thread by ID","openapi":"GET /v1/agents/threads/{threadId}","href":"/api-reference/endpoint/get-api-v1-agents-threads-threadid"},{"title":"Update a thread","openapi":"PATCH /v1/agents/threads/{threadId}","href":"/api-reference/endpoint/patch-api-v1-agents-threads-threadid"},{"title":"Get threads for an agent","openapi":"GET /v1/agents/{agentId}/threads","href":"/api-reference/endpoint/get-api-v1-agents-agentid-threads"},{"title":"Create a new thread for an agent","openapi":"POST /v1/agents/{agentId}/threads","href":"/api-reference/endpoint/post-api-v1-agents-agentid-threads"},{"title":"Get agent evaluation configuration","openapi":"GET /v1/agents/agents/{agentId}/evaluation-config","href":"/api-reference/endpoint/get-api-v1-agents-agents-agentid-evaluation-config"},{"title":"Update agent evaluation configuration","openapi":"PUT /v1/agents/agents/{agentId}/evaluation-config","description":"Creates or updates the evaluation configuration for the specified agent.","href":"/api-reference/endpoint/put-api-v1-agents-agents-agentid-evaluation-config"},{"title":"Handle thread approval request","openapi":"POST /v1/agents/threads/{threadId}/approval","href":"/api-reference/endpoint/post-api-v1-agents-threads-threadid-approval"},{"title":"Complete a thread","openapi":"POST /v1/agents/threads/{threadId}/complete","description":"Marks a thread as completed. This can be used to signal the end of an execution, especially in manual or custom workflows.","href":"/api-reference/endpoint/post-api-v1-agents-threads-threadid-complete"},{"title":"Evaluate a thread","openapi":"POST /v1/agents/threads/{threadId}/evaluate","href":"/api-reference/endpoint/post-api-v1-agents-threads-threadid-evaluate"},{"title":"Get thread evaluation","openapi":"GET /v1/agents/threads/{threadId}/evaluation","href":"/api-reference/endpoint/get-api-v1-agents-threads-threadid-evaluation"},{"title":"Get all thread evaluations","openapi":"GET /v1/agents/threads/{threadId}/evaluations","href":"/api-reference/endpoint/get-api-v1-agents-threads-threadid-evaluations"},{"title":"Get feedback for a thread","openapi":"GET /v1/agents/threads/{threadId}/feedback","href":"/api-reference/endpoint/get-api-v1-agents-threads-threadid-feedback"},{"title":"Submit feedback for a thread message","openapi":"POST /v1/agents/threads/{threadId}/feedback","href":"/api-reference/endpoint/post-api-v1-agents-threads-threadid-feedback"},{"title":"Continue a thread with a user message","openapi":"POST /v1/agents/threads/{threadId}/messages","href":"/api-reference/endpoint/post-api-v1-agents-threads-threadid-messages"},{"title":"Pause a thread","openapi":"POST /v1/agents/threads/{threadId}/pause","href":"/api-reference/endpoint/post-api-v1-agents-threads-threadid-pause"},{"title":"Resume a thread","openapi":"POST /v1/agents/threads/{threadId}/resume","href":"/api-reference/endpoint/post-api-v1-agents-threads-threadid-resume"},{"title":"Search messages within a thread","openapi":"GET /v1/agents/threads/{threadId}/search","href":"/api-reference/endpoint/get-api-v1-agents-threads-threadid-search"},{"title":"Get daily costs for an agent","openapi":"GET /v1/agents/agents/{agentId}/costs/daily","href":"/api-reference/endpoint/get-api-v1-agents-agents-agentid-costs-daily"},{"title":"Get monthly costs for an agent","openapi":"GET /v1/agents/agents/{agentId}/costs/monthly","href":"/api-reference/endpoint/get-api-v1-agents-agents-agentid-costs-monthly"},{"title":"Get cost summary for an agent","openapi":"GET /v1/agents/agents/{agentId}/costs/summary","href":"/api-reference/endpoint/get-api-v1-agents-agents-agentid-costs-summary"},{"title":"Get unique tags from agent threads","openapi":"GET /v1/agents/agents/{agentId}/threads/tags","href":"/api-reference/endpoint/get-api-v1-agents-agents-agentid-threads-tags"},{"title":"Get specific thread evaluation by ID","openapi":"GET /v1/agents/threads/{threadId}/evaluations/{evaluationId}","href":"/api-reference/endpoint/get-api-v1-agents-threads-threadid-evaluations-evaluationid"}]},{"group":"Assistants","pages":[{"title":"Get all available assistant specializations","openapi":"GET /v1/assistants","href":"/api-reference/endpoint/get-api-v1-assistants"},{"title":"Create a new assistant","openapi":"POST /v1/assistants","href":"/api-reference/endpoint/post-api-v1-assistants"},{"title":"Get all chat histories with filters","openapi":"POST /v1/assistants/chats","href":"/api-reference/endpoint/post-api-v1-assistants-chats"},{"title":"Get unique tags from chat histories","openapi":"GET /v1/assistants/tags","href":"/api-reference/endpoint/get-api-v1-assistants-tags"},{"title":"Get a specific assistant specialization","openapi":"GET /v1/assistants/{identifier}","href":"/api-reference/endpoint/get-api-v1-assistants-identifier"},{"title":"Update an assistant","openapi":"PATCH /v1/assistants/{identifier}","href":"/api-reference/endpoint/patch-api-v1-assistants-identifier"},{"title":"Delete an assistant","openapi":"DELETE /v1/assistants/{identifier}","href":"/api-reference/endpoint/delete-api-v1-assistants-identifier"},{"title":"Get chat histories for an assistant","openapi":"GET /v1/assistants/{identifier}/chats","href":"/api-reference/endpoint/get-api-v1-assistants-identifier-chats"},{"title":"Process a message with an assistant","openapi":"POST /v1/assistants/{identifier}/messages","href":"/api-reference/endpoint/post-api-v1-assistants-identifier-messages"},{"title":"Get chat history for a conversation","openapi":"GET /v1/assistants/{identifier}/chats/{chatUid}","href":"/api-reference/endpoint/get-api-v1-assistants-identifier-chats-chatuid"},{"title":"Get feedback for a chat","openapi":"GET /v1/assistants/{identifier}/chats/{chatUid}/feedback","href":"/api-reference/endpoint/get-api-v1-assistants-identifier-chats-chatuid-feedback"},{"title":"Submit feedback for a chat message","openapi":"POST /v1/assistants/{identifier}/chats/{chatUid}/feedback","href":"/api-reference/endpoint/post-api-v1-assistants-identifier-chats-chatuid-feedback"},{"title":"Search messages within a chat","openapi":"GET /v1/assistants/{identifier}/chats/{chatUid}/search","href":"/api-reference/endpoint/get-api-v1-assistants-identifier-chats-chatuid-search"},{"title":"Stop an in-progress async chat","openapi":"POST /v1/assistants/{identifier}/chats/{chatUid}/stop","href":"/api-reference/endpoint/post-api-v1-assistants-identifier-chats-chatuid-stop"},{"title":"Submit tool responses (Model Interface Protocol)","openapi":"POST /v1/assistants/{identifier}/chats/{chatUid}/tool-response","href":"/api-reference/endpoint/post-api-v1-assistants-identifier-chats-chatuid-tool-response"},{"title":"Get real-time chat history","openapi":"GET /v1/assistants/{identifier}/chats/{chatUid}/realtime","href":"/api-reference/endpoint/get-api-v1-assistants-identifier-chats-chatuid-realtime"},{"title":"Follow real-time chat history (SSE)","openapi":"GET /v1/assistants/{identifier}/chats/{chatUid}/stream","href":"/api-reference/endpoint/get-api-v1-assistants-identifier-chats-chatuid-stream"}]},{"group":"Memory","pages":[{"title":"Core memory entries of the assistant’s bucket","openapi":"GET /v1/memory/assistants/{identifier}/core","href":"/api-reference/endpoint/get-api-v1-memory-assistants-identifier-core"},{"title":"Add a core memory entry","openapi":"POST /v1/memory/assistants/{identifier}/core","href":"/api-reference/endpoint/post-api-v1-memory-assistants-identifier-core"},{"title":"Edit a core memory entry","openapi":"PATCH /v1/memory/assistants/{identifier}/core/{entryId}","href":"/api-reference/endpoint/patch-api-v1-memory-assistants-identifier-core-entryid"},{"title":"Remove a core memory entry","openapi":"DELETE /v1/memory/assistants/{identifier}/core/{entryId}","href":"/api-reference/endpoint/delete-api-v1-memory-assistants-identifier-core-entryid"}]},{"group":"Tool Servers","pages":[{"title":"List all tool servers","openapi":"GET /v1/tool-servers","href":"/api-reference/endpoint/get-api-v1-tool-servers"},{"title":"Create a new tool server","openapi":"POST /v1/tool-servers","href":"/api-reference/endpoint/post-api-v1-tool-servers"},{"title":"Get tool server by ID","openapi":"GET /v1/tool-servers/{toolServerId}","href":"/api-reference/endpoint/get-api-v1-tool-servers-toolserverid"},{"title":"Update tool server","openapi":"PATCH /v1/tool-servers/{toolServerId}","href":"/api-reference/endpoint/patch-api-v1-tool-servers-toolserverid"},{"title":"Delete tool server","openapi":"DELETE /v1/tool-servers/{toolServerId}","href":"/api-reference/endpoint/delete-api-v1-tool-servers-toolserverid"},{"title":"Clone a tool server","openapi":"POST /v1/tool-servers/{toolServerId}/clone","href":"/api-reference/endpoint/post-api-v1-tool-servers-toolserverid-clone"},{"title":"Get tool server definition","openapi":"GET /v1/tool-servers/{toolServerId}/definition","href":"/api-reference/endpoint/get-api-v1-tool-servers-toolserverid-definition"},{"title":"Update tool server definition","openapi":"PATCH /v1/tool-servers/{toolServerId}/definition","href":"/api-reference/endpoint/patch-api-v1-tool-servers-toolserverid-definition"},{"title":"Get all tools in a tool server","openapi":"GET /v1/tool-servers/{toolServerId}/tools","href":"/api-reference/endpoint/get-api-v1-tool-servers-toolserverid-tools"},{"title":"Add a tool to a tool server","openapi":"POST /v1/tool-servers/{toolServerId}/tools","href":"/api-reference/endpoint/post-api-v1-tool-servers-toolserverid-tools"},{"title":"Get a specific tool by name","openapi":"GET /v1/tool-servers/{toolServerId}/tools/{toolName}","href":"/api-reference/endpoint/get-api-v1-tool-servers-toolserverid-tools-toolname"},{"title":"Update a tool by name","openapi":"PATCH /v1/tool-servers/{toolServerId}/tools/{toolName}","href":"/api-reference/endpoint/patch-api-v1-tool-servers-toolserverid-tools-toolname"},{"title":"Delete a tool by name","openapi":"DELETE /v1/tool-servers/{toolServerId}/tools/{toolName}","href":"/api-reference/endpoint/delete-api-v1-tool-servers-toolserverid-tools-toolname"},{"title":"Test a tool call","openapi":"POST /v1/tool-servers/{toolServerId}/tools/{toolName}/test","href":"/api-reference/endpoint/post-api-v1-tool-servers-toolserverid-tools-toolname-test"}]},{"group":"MCP Gateway","pages":[{"title":"List visibility profiles","openapi":"GET /v1/tool-servers/{toolServerId}/profiles","href":"/api-reference/endpoint/get-api-v1-tool-servers-toolserverid-profiles"},{"title":"Create a visibility profile","openapi":"POST /v1/tool-servers/{toolServerId}/profiles","href":"/api-reference/endpoint/post-api-v1-tool-servers-toolserverid-profiles"},{"title":"List per-user access","openapi":"GET /v1/tool-servers/{toolServerId}/users","href":"/api-reference/endpoint/get-api-v1-tool-servers-toolserverid-users"},{"title":"Update a visibility profile","openapi":"PATCH /v1/tool-servers/{toolServerId}/profiles/{profileId}","href":"/api-reference/endpoint/patch-api-v1-tool-servers-toolserverid-profiles-profileid"},{"title":"Delete a visibility profile","openapi":"DELETE /v1/tool-servers/{toolServerId}/profiles/{profileId}","href":"/api-reference/endpoint/delete-api-v1-tool-servers-toolserverid-profiles-profileid"},{"title":"Set a user’s access and visibility","openapi":"PATCH /v1/tool-servers/{toolServerId}/users/{userUID}","href":"/api-reference/endpoint/patch-api-v1-tool-servers-toolserverid-users-useruid"},{"title":"Remove a user’s access row","openapi":"DELETE /v1/tool-servers/{toolServerId}/users/{userUID}","href":"/api-reference/endpoint/delete-api-v1-tool-servers-toolserverid-users-useruid"}]},{"group":"Integrations","pages":[{"title":"List connectable apps","openapi":"GET /v1/integrations","href":"/api-reference/endpoint/get-api-v1-integrations"},{"title":"List connected integrations","openapi":"GET /v1/integrations/connected","href":"/api-reference/endpoint/get-api-v1-integrations-connected"},{"title":"Get a connectable app","openapi":"GET /v1/integrations/{app}","href":"/api-reference/endpoint/get-api-v1-integrations-app"},{"title":"How an app can be connected","openapi":"GET /v1/integrations/{app}/auth","href":"/api-reference/endpoint/get-api-v1-integrations-app-auth"},{"title":"Connect an account","openapi":"POST /v1/integrations/{app}/connect","href":"/api-reference/endpoint/post-api-v1-integrations-app-connect"},{"title":"Whether an account is connected","openapi":"GET /v1/integrations/{app}/connection-status","href":"/api-reference/endpoint/get-api-v1-integrations-app-connection-status"},{"title":"Build a tool server from a connected account","openapi":"POST /v1/integrations/{app}/servers","href":"/api-reference/endpoint/post-api-v1-integrations-app-servers"},{"title":"List an app’s event types","openapi":"GET /v1/integrations/{app}/triggers","href":"/api-reference/endpoint/get-api-v1-integrations-app-triggers"},{"title":"List a connected integration’s tools","openapi":"GET /v1/integrations/servers/{id}/tools","href":"/api-reference/endpoint/get-api-v1-integrations-servers-id-tools"},{"title":"Change which tools a connected integration exposes","openapi":"PATCH /v1/integrations/servers/{id}/tools","href":"/api-reference/endpoint/patch-api-v1-integrations-servers-id-tools"},{"title":"Get an event type","openapi":"GET /v1/integrations/{app}/triggers/{slug}","href":"/api-reference/endpoint/get-api-v1-integrations-app-triggers-slug"},{"title":"Test one of a connected integration’s tools","openapi":"POST /v1/integrations/servers/{id}/tools/{toolName}/test","href":"/api-reference/endpoint/post-api-v1-integrations-servers-id-tools-toolname-test"}]},{"group":"Triggers","pages":[{"title":"List triggers","openapi":"GET /v1/triggers","href":"/api-reference/endpoint/get-api-v1-triggers"},{"title":"Create a trigger","openapi":"POST /v1/triggers","href":"/api-reference/endpoint/post-api-v1-triggers"},{"title":"Get a trigger","openapi":"GET /v1/triggers/{id}","href":"/api-reference/endpoint/get-api-v1-triggers-id"},{"title":"Update a trigger","openapi":"PATCH /v1/triggers/{id}","href":"/api-reference/endpoint/patch-api-v1-triggers-id"},{"title":"Delete a trigger","openapi":"DELETE /v1/triggers/{id}","href":"/api-reference/endpoint/delete-api-v1-triggers-id"},{"title":"List a trigger’s recent deliveries","openapi":"GET /v1/triggers/{id}/events","href":"/api-reference/endpoint/get-api-v1-triggers-id-events"}]},{"group":"Projects","pages":[{"title":"List all projects","openapi":"GET /v1/projects","href":"/api-reference/endpoint/get-api-v1-projects"},{"title":"Create a new project","openapi":"POST /v1/projects","href":"/api-reference/endpoint/post-api-v1-projects"},{"title":"Get a project by ID","openapi":"GET /v1/projects/{projectId}","href":"/api-reference/endpoint/get-api-v1-projects-projectid"},{"title":"Update a project","openapi":"PATCH /v1/projects/{projectId}","href":"/api-reference/endpoint/patch-api-v1-projects-projectid"},{"title":"Archive a project","openapi":"DELETE /v1/projects/{projectId}","href":"/api-reference/endpoint/delete-api-v1-projects-projectid"},{"title":"List project assistant conversations","openapi":"GET /v1/projects/{projectId}/conversations","href":"/api-reference/endpoint/get-api-v1-projects-projectid-conversations"},{"title":"Get project stats summary","openapi":"GET /v1/projects/{projectId}/stats","href":"/api-reference/endpoint/get-api-v1-projects-projectid-stats"},{"title":"List project agent threads","openapi":"GET /v1/projects/{projectId}/threads","href":"/api-reference/endpoint/get-api-v1-projects-projectid-threads"},{"title":"Get daily costs for a project","openapi":"GET /v1/projects/{projectId}/costs/daily","href":"/api-reference/endpoint/get-api-v1-projects-projectid-costs-daily"},{"title":"Get monthly costs for a project","openapi":"GET /v1/projects/{projectId}/costs/monthly","href":"/api-reference/endpoint/get-api-v1-projects-projectid-costs-monthly"}]},{"group":"Tenants","pages":[{"title":"List tenants","openapi":"GET /v1/tenants","href":"/api-reference/endpoint/get-api-v1-tenants"},{"title":"Get a tenant","openapi":"GET /v1/tenants/{tenantId}","href":"/api-reference/endpoint/get-api-v1-tenants-tenantid"},{"title":"Update a tenant","openapi":"PATCH /v1/tenants/{tenantId}","href":"/api-reference/endpoint/patch-api-v1-tenants-tenantid"},{"title":"Delete a tenant","openapi":"DELETE /v1/tenants/{tenantId}","href":"/api-reference/endpoint/delete-api-v1-tenants-tenantid"},{"title":"Get tenant costs","openapi":"GET /v1/tenants/{tenantId}/costs","href":"/api-reference/endpoint/get-api-v1-tenants-tenantid-costs"},{"title":"Get tenant stats","openapi":"GET /v1/tenants/{tenantId}/stats","href":"/api-reference/endpoint/get-api-v1-tenants-tenantid-stats"},{"title":"List subtenants","openapi":"GET /v1/tenants/{tenantId}/subtenants","href":"/api-reference/endpoint/get-api-v1-tenants-tenantid-subtenants"},{"title":"Get a subtenant","openapi":"GET /v1/tenants/{tenantId}/subtenants/{subtenantId}","href":"/api-reference/endpoint/get-api-v1-tenants-tenantid-subtenants-subtenantid"},{"title":"Update a subtenant (name, avatar)","openapi":"PATCH /v1/tenants/{tenantId}/subtenants/{subtenantId}","href":"/api-reference/endpoint/patch-api-v1-tenants-tenantid-subtenants-subtenantid"}]},{"group":"Tenant Sessions","pages":[{"title":"Issue a tenant session","openapi":"POST /api/v1/tenant-sessions","href":"/api-reference/endpoint/post-api-v1-tenant-sessions"}]},{"group":"Tenant Integrations","pages":[{"title":"List the apps this assistant offers, with my connection status","openapi":"GET /v1/tenant-integrations","href":"/api-reference/endpoint/get-api-v1-tenant-integrations"},{"title":"Re-read my connections now","openapi":"POST /v1/tenant-integrations/refresh","href":"/api-reference/endpoint/post-api-v1-tenant-integrations-refresh"},{"title":"Disconnect one of my accounts","openapi":"DELETE /v1/tenant-integrations/accounts/{accountId}","href":"/api-reference/endpoint/delete-api-v1-tenant-integrations-accounts-accountid"},{"title":"My connected accounts for one app","openapi":"GET /v1/tenant-integrations/{app}/accounts","href":"/api-reference/endpoint/get-api-v1-tenant-integrations-app-accounts"},{"title":"What connecting this app asks of me","openapi":"GET /v1/tenant-integrations/{app}/auth","href":"/api-reference/endpoint/get-api-v1-tenant-integrations-app-auth"},{"title":"Connect one of my accounts","openapi":"POST /v1/tenant-integrations/{app}/connect","href":"/api-reference/endpoint/post-api-v1-tenant-integrations-app-connect"}]},{"group":"Tenant Usage","pages":[{"title":"List tiers (plans)","openapi":"GET /v1/tenant-usage/tiers","href":"/api-reference/endpoint/get-api-v1-tenant-usage-tiers"},{"title":"Get tenant usage \u0026 limits","openapi":"GET /v1/tenant-usage/{tenantId}","href":"/api-reference/endpoint/get-api-v1-tenant-usage-tenantid"},{"title":"Get tenant usage history","openapi":"GET /v1/tenant-usage/{tenantId}/history","href":"/api-reference/endpoint/get-api-v1-tenant-usage-tenantid-history"},{"title":"Get subtenant usage \u0026 limits","openapi":"GET /v1/tenant-usage/{tenantId}/subtenants/{subtenantId}","href":"/api-reference/endpoint/get-api-v1-tenant-usage-tenantid-subtenants-subtenantid"},{"title":"Get subtenant usage history","openapi":"GET /v1/tenant-usage/{tenantId}/subtenants/{subtenantId}/history","href":"/api-reference/endpoint/get-api-v1-tenant-usage-tenantid-subtenants-subtenantid-history"}]},{"group":"Tenant Admin","pages":[{"title":"Add usage to a tenant","openapi":"POST /v1/tenant-admin/{tenantId}/add-usage","href":"/api-reference/endpoint/post-api-v1-tenant-admin-tenantid-add-usage"},{"title":"Add usage to a subtenant","openapi":"POST /v1/tenant-admin/{tenantId}/subtenants/{subtenantId}/add-usage","href":"/api-reference/endpoint/post-api-v1-tenant-admin-tenantid-subtenants-subtenantid-add-usage"},{"title":"Change a tenant tier (plan)","openapi":"POST /v1/tenant-admin/{tenantId}/tier","href":"/api-reference/endpoint/post-api-v1-tenant-admin-tenantid-tier"},{"title":"Reset tenant usage counters","openapi":"POST /v1/tenant-admin/{tenantId}/usage-limits/reset","href":"/api-reference/endpoint/post-api-v1-tenant-admin-tenantid-usage-limits-reset"},{"title":"Change a subtenant tier (plan)","openapi":"POST /v1/tenant-admin/{tenantId}/subtenants/{subtenantId}/tier","href":"/api-reference/endpoint/post-api-v1-tenant-admin-tenantid-subtenants-subtenantid-tier"},{"title":"Reset subtenant usage counters","openapi":"POST /v1/tenant-admin/{tenantId}/subtenants/{subtenantId}/usage-limits/reset","href":"/api-reference/endpoint/post-api-v1-tenant-admin-tenantid-subtenants-subtenantid-usage-limits-reset"}]},{"group":"Knowledge","pages":[{"title":"List document folders","openapi":"GET /v1/document-folders","href":"/api-reference/endpoint/get-api-v1-document-folders"},{"title":"Create a document folder","openapi":"POST /v1/document-folders","href":"/api-reference/endpoint/post-api-v1-document-folders"},{"title":"List documents","openapi":"GET /v1/documents","href":"/api-reference/endpoint/get-api-v1-documents"},{"title":"Create a markdown document","openapi":"POST /v1/documents","href":"/api-reference/endpoint/post-api-v1-documents"},{"title":"Update a document folder","openapi":"PATCH /v1/document-folders/{id}","href":"/api-reference/endpoint/patch-api-v1-document-folders-id"},{"title":"Delete a document folder","openapi":"DELETE /v1/document-folders/{id}","href":"/api-reference/endpoint/delete-api-v1-document-folders-id"},{"title":"Get document graph","openapi":"GET /v1/documents/graph","href":"/api-reference/endpoint/get-api-v1-documents-graph"},{"title":"Get a document by ID","openapi":"GET /v1/documents/{id}","href":"/api-reference/endpoint/get-api-v1-documents-id"},{"title":"Update a document","openapi":"PATCH /v1/documents/{id}","href":"/api-reference/endpoint/patch-api-v1-documents-id"},{"title":"Delete a document","openapi":"DELETE /v1/documents/{id}","href":"/api-reference/endpoint/delete-api-v1-documents-id"},{"title":"Attach a folder to an agent or assistant","openapi":"POST /v1/document-folders/{folderId}/attach","href":"/api-reference/endpoint/post-api-v1-document-folders-folderid-attach"},{"title":"Detach a folder from an agent or assistant","openapi":"POST /v1/document-folders/{folderId}/detach","href":"/api-reference/endpoint/post-api-v1-document-folders-folderid-detach"},{"title":"Attach a document to an agent or assistant","openapi":"POST /v1/documents/{id}/attach","href":"/api-reference/endpoint/post-api-v1-documents-id-attach"},{"title":"Detach a document from an agent or assistant","openapi":"POST /v1/documents/{id}/detach","href":"/api-reference/endpoint/post-api-v1-documents-id-detach"},{"title":"List subdocuments","openapi":"GET /v1/documents/{id}/subdocuments","href":"/api-reference/endpoint/get-api-v1-documents-id-subdocuments"},{"title":"Get document usage","openapi":"GET /v1/documents/{id}/usage","href":"/api-reference/endpoint/get-api-v1-documents-id-usage"},{"title":"List document versions","openapi":"GET /v1/documents/{id}/versions","href":"/api-reference/endpoint/get-api-v1-documents-id-versions"},{"title":"Revert a document to a previous version","openapi":"POST /v1/documents/{id}/revert/{version}","href":"/api-reference/endpoint/post-api-v1-documents-id-revert-version"},{"title":"Get a document version","openapi":"GET /v1/documents/{id}/versions/{version}","href":"/api-reference/endpoint/get-api-v1-documents-id-versions-version"}]},{"group":"Skills","pages":[{"title":"List the skills catalog (documents + folders)","openapi":"GET /v1/documents/skills","href":"/api-reference/endpoint/get-api-v1-documents-skills"},{"title":"Scaffold a folder-skill (folder + SKILL.md manifest)","openapi":"POST /v1/documents/skills/scaffold","href":"/api-reference/endpoint/post-api-v1-documents-skills-scaffold"},{"title":"List distinct skill/document tags","openapi":"GET /v1/documents/skills/tags","href":"/api-reference/endpoint/get-api-v1-documents-skills-tags"},{"title":"Download a skill tree (files with relative paths + content)","openapi":"GET /v1/documents/skills/{id}/tree","href":"/api-reference/endpoint/get-api-v1-documents-skills-id-tree"},{"title":"Record that a skill was uninstalled locally (CLI)","openapi":"DELETE /v1/documents/skills/{id}/install","href":"/api-reference/endpoint/delete-api-v1-documents-skills-id-install"},{"title":"Download a skill tree and record the install (CLI)","openapi":"POST /v1/documents/skills/{id}/install","href":"/api-reference/endpoint/post-api-v1-documents-skills-id-install"}]},{"group":"Files","pages":[{"title":"Upload a file","openapi":"POST /v1/files/upload","href":"/api-reference/endpoint/post-api-v1-files-upload"}]},{"group":"Speech to Text","pages":[{"title":"Transcribe audio (speech-to-text)","openapi":"POST /v1/whisper","href":"/api-reference/endpoint/post-api-v1-whisper"},{"title":"Get a transcript by id","openapi":"GET /v1/whisper/{transcriptId}","href":"/api-reference/endpoint/get-api-v1-whisper-transcriptid"}]},{"group":"Environments","pages":[{"title":"List environments","openapi":"GET /v1/environments","href":"/api-reference/endpoint/get-api-v1-environments"},{"title":"Create an environment","openapi":"POST /v1/environments","href":"/api-reference/endpoint/post-api-v1-environments"},{"title":"Delete an environment","openapi":"DELETE /v1/environments/{environmentId}","href":"/api-reference/endpoint/delete-api-v1-environments-environmentid"},{"title":"Get an environment by id","openapi":"GET /v1/environments/{environmentId}","href":"/api-reference/endpoint/get-api-v1-environments-environmentid"},{"title":"Update an environment","openapi":"PATCH /v1/environments/{environmentId}","href":"/api-reference/endpoint/patch-api-v1-environments-environmentid"},{"title":"List the agents and assistants connected to an environment","openapi":"GET /v1/environments/{environmentId}/connections","href":"/api-reference/endpoint/get-api-v1-environments-environmentid-connections"},{"title":"Disconnect an agent or assistant from its environment","openapi":"DELETE /v1/environments/{environmentId}/connections/{entityType}/{entityId}","href":"/api-reference/endpoint/delete-api-v1-environments-environmentid-connections-entitytype-entityid"},{"title":"Connect an agent or assistant to an environment","openapi":"PUT /v1/environments/{environmentId}/connections/{entityType}/{entityId}","href":"/api-reference/endpoint/put-api-v1-environments-environmentid-connections-entitytype-entityid"},{"title":"Bake (or re-bake) the environment snapshot","openapi":"POST /v1/environments/{environmentId}/snapshot/initialize","href":"/api-reference/endpoint/post-api-v1-environments-environmentid-snapshot-initialize"},{"title":"List the per-tenant snapshots derived from this environment","openapi":"GET /v1/environments/{environmentId}/tenant-snapshots","href":"/api-reference/endpoint/get-api-v1-environments-environmentid-tenant-snapshots"},{"title":"Post api v1 environments environmentid tenant snapshots tenantid initialize","href":"/api-reference/endpoint/post-api-v1-environments-environmentid-tenant-snapshots-tenantid-initialize"},{"title":"Delete api v1 environments environmentid tenant snapshots tenantid","href":"/api-reference/endpoint/delete-api-v1-environments-environmentid-tenant-snapshots-tenantid"},{"title":"List the sandbox sessions run on this environment","openapi":"GET /v1/environments/{environmentId}/sessions","href":"/api-reference/endpoint/get-api-v1-environments-environmentid-sessions"},{"title":"Get the most recent session, reconciled against the engine","openapi":"GET /v1/environments/{environmentId}/sessions/last","href":"/api-reference/endpoint/get-api-v1-environments-environmentid-sessions-last"},{"title":"Get one session with its command log","openapi":"GET /v1/environments/{environmentId}/sessions/{sessionId}","href":"/api-reference/endpoint/get-api-v1-environments-environmentid-sessions-sessionid"},{"title":"List the CLIs installed on this environment","openapi":"GET /v1/environments/{environmentId}/clis","href":"/api-reference/endpoint/get-api-v1-environments-environmentid-clis"}]},{"group":"Sandboxes","pages":[{"title":"Start a sandbox session","openapi":"POST /v1/environments/{environmentId}/sandbox/start","href":"/api-reference/endpoint/post-api-v1-environments-environmentid-sandbox-start"},{"title":"Whether a session is live on this environment","openapi":"GET /v1/environments/{environmentId}/sandbox/status","href":"/api-reference/endpoint/get-api-v1-environments-environmentid-sandbox-status"},{"title":"Run a command in the sandbox","openapi":"POST /v1/environments/{environmentId}/sandbox/exec","href":"/api-reference/endpoint/post-api-v1-environments-environmentid-sandbox-exec"},{"title":"Stop the session","openapi":"POST /v1/environments/{environmentId}/sandbox/stop","href":"/api-reference/endpoint/post-api-v1-environments-environmentid-sandbox-stop"},{"title":"List a directory inside the sandbox","openapi":"POST /v1/environments/{environmentId}/sandbox/files/list","href":"/api-reference/endpoint/post-api-v1-environments-environmentid-sandbox-files-list"},{"title":"Read a text file from the sandbox","openapi":"POST /v1/environments/{environmentId}/sandbox/files/read","href":"/api-reference/endpoint/post-api-v1-environments-environmentid-sandbox-files-read"},{"title":"Write a file into the sandbox","openapi":"POST /v1/environments/{environmentId}/sandbox/files/write","href":"/api-reference/endpoint/post-api-v1-environments-environmentid-sandbox-files-write"}]},{"group":"Tenant MCP","pages":[{"title":"The MCP servers this assistant offers me, and the ones I connected","openapi":"GET /v1/tenant-mcp","href":"/api-reference/endpoint/get-api-v1-tenant-mcp"},{"title":"Connect an MCP server","openapi":"POST /v1/tenant-mcp","href":"/api-reference/endpoint/post-api-v1-tenant-mcp"},{"title":"Disconnect an MCP server","openapi":"DELETE /v1/tenant-mcp/{id}","href":"/api-reference/endpoint/delete-api-v1-tenant-mcp-id"},{"title":"One of my MCP servers","openapi":"GET /v1/tenant-mcp/{id}","href":"/api-reference/endpoint/get-api-v1-tenant-mcp-id"},{"title":"Rename one of my MCP servers","openapi":"PATCH /v1/tenant-mcp/{id}","href":"/api-reference/endpoint/patch-api-v1-tenant-mcp-id"},{"title":"The tools this server exposes","openapi":"GET /v1/tenant-mcp/{id}/tools","href":"/api-reference/endpoint/get-api-v1-tenant-mcp-id-tools"},{"title":"Authorize again","openapi":"POST /v1/tenant-mcp/{id}/reconnect","href":"/api-reference/endpoint/post-api-v1-tenant-mcp-id-reconnect"}]},{"group":"Documentation","pages":[{"title":"Documentation index page","openapi":"GET /v1/docs","href":"/api-reference/endpoint/get-api-v1-docs"},{"title":"Get rendered markdown documentation page","openapi":"GET /v1/docs/{filename}","href":"/api-reference/endpoint/get-api-v1-docs-filename"},{"title":"Get raw markdown documentation file","openapi":"GET /v1/docs/{filename}.md","href":"/api-reference/endpoint/get-api-v1-docs-filename-md"}]},{"group":"Health","pages":[{"title":"Health check endpoint","openapi":"GET /v1/health","href":"/api-reference/endpoint/get-api-v1-health"}]}]}]},"basePath":"","title":"Handle thread approval request - Devic Documentation","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DDP9JXtj.js","utils-8yQyvEtx.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CBCFR8Sn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-rQaXkUHa.js","snippetPresets-J5KpBTgV.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BVxVH4Cj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BxdQ2vIi.js","shallow-BjV2tFiD.js","getApiPlaygroundDisplay-C_55tL4O.js","CodeSnippet-C0JpiCOC.js","CodeSnippets-w9Ps7djG.js","Page-DTNSD-0M.js","getPastedJson-BDfB-H8d.js","icon-g-kUkkO9.js","MethodPill-v4l6fq0h.js","DuplicateIcon-CvLo-CfU.js","createIcon-165clrrV.js","DynamicMarkdown-D3RQ-fEj.js","SectionHeading-vvo-3yLf.js","axios-vUo_bRtp.js","Markdown-CMT1uFWQ.js","clsx-C8f2yC9R.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CI2D8R2Y.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-k78Wrw_e.js"]}