{
"error": {
"type": "rate_limited",
"message": "This API key exceeded its request-rate limit"
}
}
Account
Verify credentials
Returns the principal behind the current credential, its granted scopes, and the organization it can act on. Call this first to discover your org_id and available capabilities.
REST quickstart
A Reason is the long-running agent a person keeps: its own conversation, instructions, Loops (standing work woken by a schedule or an event) and the Sessions it runs. Give it work by messaging it.
List your Reasons with GET /v3/organizations/{orgId}/reasons (sessions:read). Your main Reason comes first; create a named one with POST /reasons (run).
Message it with POST /v3/organizations/{orgId}/reasons/{reasonId}/messages (run) and read its replies with GET on the same path. Configure it with PATCH /reasons/{reasonId} (instructions, default model, default repositories), give it standing work with POST /reasons/{reasonId}/loops (automations:write), and read or edit memory with /memory/files, /memory/file and /memory/search (scope=personal for the key owner’s own, team for the workspace’s; memory:read, memory:write).
For one unattended task, start a Session instead: POST a prompt to /v3/organizations/{orgId}/sessions with reason_id, completion_mode: run_outcome and an idempotency_key in the JSON body (HTTP 201 creates; 200 replays). Poll it with GET until status leaves running. Lifecycle exit does not prove success: only outcome success is a successful task; failure, action_required and null need handling. Follow Retry-After on HTTP 429.
Runnable Node.js example
Download api-session.mjs, review it, and run it with Node.js 20 or newer. It creates real work that may incur usage. Set REASON_API_KEY, REASON_PROMPT, and a stable REASON_IDEMPOTENCY_KEY in your environment, then run node api-session.mjs. Optional REASON_REPO and REASON_PROJECT_ID (a Reason id) select resources explicitly. The example exits nonzero for failed, suspended, unresolved, or action-required tasks and times out after ten minutes without cancelling the remote session.
MCP is a separate client connection
For an MCP client, connect to https://mcp.reasonmachines.com/mcp using that client’s supported OAuth setup. See Connect over MCP for the commands. The REST workflow above uses the HTTP API and does not require installing an MCP client.
Your Reason API key from Settings › API keys. New keys use reason_; legacy ara_ keys remain accepted. Keys are capability-scoped: run, mcp:read, mcp:write, secrets:read, secrets:write, sessions:read, sessions:debug, devices:read, devices:write, devices:use, computers:read, computers:write, ssh:write, knowledge:read, memory:read, memory:write, skills:read, skills:write, pages:read, pages:write, repos:read, repos:write, reviews:read, reviews:write, deployment:read, analytics:read, org:read, org:write, attachments:read, attachments:write, guardrails:read, guardrails:write, network:read, network:write, automations:read, automations:write, agent_auth:read. devices:write, devices:use, computers:read, computers:write, ssh:write, network:read and network:write are opt-in, excluded from default keys. computers:read lists visible cloud and connected computers without waking them or granting execution access. devices:read discovers local Device targets; devices:use separately consents to local execution, so a discover-and-run local workflow needs both. devices:write manages enrollment and device grants; computers:write creates or deletes cloud computers; ssh:write manages retained SSH access. network:read reads the saved workspace network policy; network:write replaces custom allowed hosts and requires a current organization owner/admin. Legacy project PATCH requests containing network_allowed_hosts also require network:write plus their existing run scope and project management permission; saved project hosts do not affect current session egress. Only owners/admins can mint or manage keys with network:write; keys cannot grant themselves more authority. See /docs/network-policies for replacement semantics and runtime applicability. mcp:write manages MCP server configuration only; it does not authorize remote MCP-tool execution. sessions:read reads sessions, including the assistant, reasoning and tool activity in their events. sessions:debug is privileged: only for organization owners/admins, it expands session events to the full diagnostic projection (diagnostic event kinds, status text and raw event metadata).
Present when principal_type is user: active MCP OAuth client grants for the signed-in user and organization.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Reason Documentation","description":"Guides to Reason, Reason Network, the HTTP API, and MCP.","colors":{"primary":"#0d0d0d","light":"#ededed","dark":"#0d0d0d"},"logo":{"light":"https://reasonmachines.com/reason-logo/reason-logo-black-transparent-512.png","dark":"https://reasonmachines.com/reason-logo/reason-logo-white-transparent-512.png","href":"/"},"favicon":"https://reasonmachines.com/favicon-512.png","api":{"playground":{"display":"simple"}},"navbar":{"primary":{"type":"button","label":"Try Reason","href":"https://reasonmachines.com/login?signin=1"}},"seo":{"metatags":{"canonical":"https://docs.reasonmachines.com"}},"integrations":{"posthog":{"apiKey":"phc_eYpkukex3YcO0dK2UtBLdXAkzPOga8mOucwH7gqv2f","apiHost":"https://us.i.posthog.com","sessionRecording":true}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ara-90a60a07","hasAudioNarration":false,"actualSubdomain":"ara-90a60a07","customDomains":[],"gitSource":{"type":"github","owner":"reason-machines","repo":"docs.reasonmachines.com","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af05ae12cec4784bb19534e","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"API reference","count":306},{"language":"default","tag":"Endpoints","count":305},{"language":"default","tag":"Sessions","count":44},{"language":"default","tag":"Agent network","count":24},{"language":"default","tag":"Devices","count":21},{"language":"default","tag":"Guides","count":19},{"language":"default","tag":"Checkpoint artifacts","count":16},{"language":"default","tag":"Automations","count":15},{"language":"default","tag":"Provider credentials","count":15},{"language":"default","tag":"Repositories","count":13}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--background-light: 255 255 255;--background-dark: 24 24 24;--doc-section-light: 115 115 115;--doc-section-dark: 163 163 163}html,body{background-color:rgb(var(--background-light))!important}#sidebar{background-color:rgb(var(--background-light))!important}html.dark,html.dark body{background-color:rgb(var(--background-dark))!important}html.dark #sidebar{background-color:rgb(var(--background-dark))!important}#sidebar .sidebar-group-header{color:rgb(var(--doc-section-light))!important;font-size:0.6875rem!important;font-weight:600!important;letter-spacing:0.08em;line-height:1.2!important;text-transform:uppercase}html.dark #sidebar .sidebar-group-header{color:rgb(var(--doc-section-dark))!important}#navbar a.select-none{display:inline-flex;align-items:center;gap:0.625rem}#navbar a.select-none::after{content:\"Reason Docs\";color:inherit;font-size:1.125rem;font-weight:500;letter-spacing:-0.025em;line-height:1;white-space:nowrap}#footer{display:none!important}#pagination{margin-bottom:2.5rem!important}@media (min-width: 1024px){:root{--topbar-tabs-height: 0rem !important}#navbar .hidden.lg\\:flex.px-12.h-12{height:0;padding:0;overflow:visible}#navbar .nav-tabs{position:absolute;top:0.5rem;left:50%;z-index:30;height:3rem;transform:translateX(-50%);align-items:center;gap:0.25rem;padding:0.25rem;border-radius:9999px}#navbar .nav-tabs-item{height:2.5rem;padding:0 1rem;border-radius:9999px;color:rgb(82 82 82)}#navbar .nav-tabs-item>div{display:none}#navbar .nav-tabs-item[data-active]{color:rgb(20 20 20);background:rgb(245 245 244)}html.dark #navbar .nav-tabs-item{color:rgb(212 212 212)}html.dark #navbar .nav-tabs-item[data-active]{color:rgb(250 250 249);background:rgb(255 255 255 / 0.12)}#navbar #search-bar-entry,#navbar #assistant-entry,#navbar #topbar-cta-button>a,#navbar #topbar-cta-button>a>span{border-radius:9999px}#navbar #assistant-entry{width:2.25rem;padding:0}#navbar #assistant-entry>span{display:none}#navbar #search-bar-entry>span{display:none}#navbar .h-full.relative.flex-1.flex.items-center.gap-x-4.min-w-0>.relative.hidden.lg\\:flex.items-center.flex-1.z-20.gap-2\\.5,#navbar .h-full.relative.flex-1.flex.items-center.gap-x-4.min-w-0>.relative.hidden.lg\\:flex.items-center.flex-1.z-20,#navbar .h-full.relative.flex-1.flex.items-center.gap-x-4.min-w-0>.relative.hidden.lg\\:flex.items-center.flex-1.z-20.justify-center{flex:0 0 auto;margin-left:auto;order:2}#navbar #search-bar-entry{width:clamp(7.5rem, 10vw, 11rem)}#navbar .flex-1.relative.hidden.lg\\:flex.items-center.ml-auto.justify-end.space-x-4{flex:0 0 auto;order:3;margin-left:0.75rem}}@media (min-width: 1024px) and (max-width: 1439px){#navbar #assistant-entry{display:none!important}#navbar .h-full.relative.flex-1.flex.items-center.gap-x-4.min-w-0>.relative.hidden.lg\\:flex.items-center.flex-1.z-20.gap-2\\.5,#navbar .h-full.relative.flex-1.flex.items-center.gap-x-4.min-w-0>.relative.hidden.lg\\:flex.items-center.flex-1.z-20,#navbar .h-full.relative.flex-1.flex.items-center.gap-x-4.min-w-0>.relative.hidden.lg\\:flex.items-center.flex-1.z-20.justify-center{margin-left:auto}}.dark #navigation-items .sidebar-group a[aria-current=\"page\"]{color:rgb(250 250 249);background-color:rgb(245 245 244 / 0.16)}.dark #navigation-items .sidebar-group a:not([aria-current=\"page\"]){color:rgb(212 212 212)}.dark #navigation-items .sidebar-group a:not([aria-current=\"page\"]):hover{color:rgb(250 250 249);background-color:rgb(245 245 244 / 0.1)}.code-block,.code-block [data-component-part=\"code-block-root\"],.code-block pre.shiki{background:transparent!important}html .code-block .code-block-background{background-color:transparent!important}html.light .code-block pre.shiki code,html.light .code-block pre.shiki .line{color:rgb(31 35 40)!important}.code-block [data-floating-buttons=\"true\"] button,.code-block [data-floating-buttons=\"true\"] button svg{opacity:1!important;visibility:visible!important}.code-block [data-floating-buttons=\"true\"] button svg{color:currentColor!important}html:not(.dark) .code-block code,html:not(.dark) .codeblock-light code,html:not(.dark) pre.shiki code{color:rgb(31 35 40)!important}html.dark .code-block code,html.dark .codeblock-dark code,html.dark pre.shiki code{color:rgb(230 237 243)!important}html.dark pre.shiki:not(.code-block pre){background-color:var(--shiki-dark-bg)!important}.copy-prompt-button{--spread: 90deg;--shimmer-color: #fff;--speed: 3s;--cut: 0.05em;--copy-prompt-bg: rgb(var(--primary));position:relative;display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;height:2.25rem;padding:0 1rem;overflow:hidden;isolation:isolate;border:1px solid rgb(255 255 255 / 0.1);border-radius:0.5rem;background-color:var(--copy-prompt-bg);color:rgb(255 255 255);font-size:0.875rem;line-height:1.25rem;font-weight:500;white-space:nowrap;cursor:pointer}.copy-prompt-button:hover{--copy-prompt-bg: rgb(var(--primary-dark))}.copy-prompt-button svg,.copy-prompt-label{position:relative;z-index:1}.copy-prompt-button svg{width:1rem;height:1rem;flex-shrink:0}.copy-prompt-spark{position:absolute;inset:0;z-index:-30;overflow:hidden;filter:blur(2px);container-type:size;pointer-events:none}.copy-prompt-spark-track{position:absolute;inset:0;height:100cqh;aspect-ratio:1;animation:copy-prompt-shimmer-slide var(--speed) ease-in-out infinite alternate}.copy-prompt-spark-conic{position:absolute;inset:-100%;width:auto;aspect-ratio:1;background:conic-gradient(\n from calc(270deg - (var(--spread) * 0.5)),\n transparent 0,\n var(--shimmer-color) var(--spread),\n transparent var(--spread)\n );animation:copy-prompt-spin-around calc(var(--speed) * 2) infinite linear}.copy-prompt-backdrop{position:absolute;inset:var(--cut);z-index:-20;border-radius:inherit;background-color:var(--copy-prompt-bg);pointer-events:none}.copy-prompt-highlight{position:absolute;inset:0;z-index:0;border-radius:inherit;box-shadow:inset 0 -8px 10px #ffffff1f;transition:box-shadow 300ms;pointer-events:none}.copy-prompt-button:hover .copy-prompt-highlight{box-shadow:inset 0 -6px 10px #ffffff3f}.copy-prompt-button:active .copy-prompt-highlight{box-shadow:inset 0 -10px 10px #ffffff3f}@keyframes copy-prompt-shimmer-slide{to{transform:translate(calc(100cqw - 100%), 0)}}@keyframes copy-prompt-spin-around{0%{transform:rotate(0)}15%,35%{transform:rotate(90deg)}65%,85%{transform:rotate(270deg)}100%{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.copy-prompt-spark-track,.copy-prompt-spark-conic{animation:none}}"}],"page":{"pagePath":"api-reference/account/verify-credentials","slug":"/api-reference/account/verify-credentials","pageMetadata":{"title":"Verify credentials","description":"Returns the principal behind the current credential, its granted scopes, and the organization it can act on. Call this first to discover your `org_id` and available capabilities.\n\n## REST quickstart\n\nA Reason is the long-running agent a person keeps: its own conversation, instructions, Loops (standing work woken by a schedule or an event) and the Sessions it runs. Give it work by messaging it.\n\n1. Create a key at [reasonmachines.com/customize?tab=api](https://reasonmachines.com/customize?tab=api) (Settings > API). Send it only in `Authorization: Bearer \u003ckey>`, never in a URL.\n2. Call this endpoint and keep the returned `org_id`.\n3. List your Reasons with `GET /v3/organizations/{orgId}/reasons` (`sessions:read`). Your main Reason comes first; create a named one with `POST /reasons` (`run`).\n4. Message it with `POST /v3/organizations/{orgId}/reasons/{reasonId}/messages` (`run`) and read its replies with `GET` on the same path. Configure it with `PATCH /reasons/{reasonId}` (instructions, default model, default repositories), give it standing work with `POST /reasons/{reasonId}/loops` (`automations:write`), and read or edit memory with `/memory/files`, `/memory/file` and `/memory/search` (`scope=personal` for the key owner's own, `team` for the workspace's; `memory:read`, `memory:write`).\n5. For one unattended task, start a Session instead: POST a prompt to `/v3/organizations/{orgId}/sessions` with `reason_id`, `completion_mode: run_outcome` and an `idempotency_key` in the JSON body (HTTP 201 creates; 200 replays). Poll it with GET until status leaves running. Lifecycle exit does not prove success: only outcome success is a successful task; failure, action_required and null need handling. Follow `Retry-After` on HTTP 429.\n\n### Runnable Node.js example\n\nDownload [api-session.mjs](https://reasonmachines.com/examples/api-session.mjs), review it, and run it with Node.js 20 or newer. It creates real work that may incur usage. Set `REASON_API_KEY`, `REASON_PROMPT`, and a stable `REASON_IDEMPOTENCY_KEY` in your environment, then run `node api-session.mjs`. Optional `REASON_REPO` and `REASON_PROJECT_ID` (a Reason id) select resources explicitly. The example exits nonzero for failed, suspended, unresolved, or action-required tasks and times out after ten minutes without cancelling the remote session.\n\n## MCP is a separate client connection\n\nFor an MCP client, connect to `https://mcp.reasonmachines.com/mcp` using that client's supported OAuth setup. See [Connect over MCP](https://docs.reasonmachines.com/docs/mcp) for the commands. The REST workflow above uses the HTTP API and does not require installing an MCP client.\n\n\u003csub>Auth: any valid API key (no scope)\u003c/sub>","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/self","href":"/api-reference/account/verify-credentials","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n h2: \"h2\",\n h3: \"h3\",\n li: \"li\",\n ol: \"ol\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Returns the principal behind the current credential, its granted scopes, and the organization it can act on. Call this first to discover your \", _jsx(_components.code, {\n children: \"org_id\"\n }), \" and available capabilities.\"]\n }), \"\\n\", _jsx(_components.h2, {\n children: \"REST quickstart\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"A Reason is the long-running agent a person keeps: its own conversation, instructions, Loops (standing work woken by a schedule or an event) and the Sessions it runs. Give it work by messaging it.\"\n }), \"\\n\", _jsxs(_components.ol, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Create a key at \", _jsx(_components.a, {\n href: \"https://reasonmachines.com/customize?tab=api\",\n children: \"reasonmachines.com/customize?tab=api\"\n }), \" (Settings > API). Send it only in \", _jsx(_components.code, {\n children: \"Authorization: Bearer \u003ckey>\"\n }), \", never in a URL.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Call this endpoint and keep the returned \", _jsx(_components.code, {\n children: \"org_id\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"List your Reasons with \", _jsx(_components.code, {\n children: \"GET /v3/organizations/{orgId}/reasons\"\n }), \" (\", _jsx(_components.code, {\n children: \"sessions:read\"\n }), \"). Your main Reason comes first; create a named one with \", _jsx(_components.code, {\n children: \"POST /reasons\"\n }), \" (\", _jsx(_components.code, {\n children: \"run\"\n }), \").\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Message it with \", _jsx(_components.code, {\n children: \"POST /v3/organizations/{orgId}/reasons/{reasonId}/messages\"\n }), \" (\", _jsx(_components.code, {\n children: \"run\"\n }), \") and read its replies with \", _jsx(_components.code, {\n children: \"GET\"\n }), \" on the same path. Configure it with \", _jsx(_components.code, {\n children: \"PATCH /reasons/{reasonId}\"\n }), \" (instructions, default model, default repositories), give it standing work with \", _jsx(_components.code, {\n children: \"POST /reasons/{reasonId}/loops\"\n }), \" (\", _jsx(_components.code, {\n children: \"automations:write\"\n }), \"), and read or edit memory with \", _jsx(_components.code, {\n children: \"/memory/files\"\n }), \", \", _jsx(_components.code, {\n children: \"/memory/file\"\n }), \" and \", _jsx(_components.code, {\n children: \"/memory/search\"\n }), \" (\", _jsx(_components.code, {\n children: \"scope=personal\"\n }), \" for the key owner’s own, \", _jsx(_components.code, {\n children: \"team\"\n }), \" for the workspace’s; \", _jsx(_components.code, {\n children: \"memory:read\"\n }), \", \", _jsx(_components.code, {\n children: \"memory:write\"\n }), \").\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"For one unattended task, start a Session instead: POST a prompt to \", _jsx(_components.code, {\n children: \"/v3/organizations/{orgId}/sessions\"\n }), \" with \", _jsx(_components.code, {\n children: \"reason_id\"\n }), \", \", _jsx(_components.code, {\n children: \"completion_mode: run_outcome\"\n }), \" and an \", _jsx(_components.code, {\n children: \"idempotency_key\"\n }), \" in the JSON body (HTTP 201 creates; 200 replays). Poll it with GET until status leaves running. Lifecycle exit does not prove success: only outcome success is a successful task; failure, action_required and null need handling. Follow \", _jsx(_components.code, {\n children: \"Retry-After\"\n }), \" on HTTP 429.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Runnable Node.js example\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Download \", _jsx(_components.a, {\n href: \"https://reasonmachines.com/examples/api-session.mjs\",\n children: \"api-session.mjs\"\n }), \", review it, and run it with Node.js 20 or newer. It creates real work that may incur usage. Set \", _jsx(_components.code, {\n children: \"REASON_API_KEY\"\n }), \", \", _jsx(_components.code, {\n children: \"REASON_PROMPT\"\n }), \", and a stable \", _jsx(_components.code, {\n children: \"REASON_IDEMPOTENCY_KEY\"\n }), \" in your environment, then run \", _jsx(_components.code, {\n children: \"node api-session.mjs\"\n }), \". Optional \", _jsx(_components.code, {\n children: \"REASON_REPO\"\n }), \" and \", _jsx(_components.code, {\n children: \"REASON_PROJECT_ID\"\n }), \" (a Reason id) select resources explicitly. The example exits nonzero for failed, suspended, unresolved, or action-required tasks and times out after ten minutes without cancelling the remote session.\"]\n }), \"\\n\", _jsx(_components.h2, {\n children: \"MCP is a separate client connection\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"For an MCP client, connect to \", _jsx(_components.code, {\n children: \"https://mcp.reasonmachines.com/mcp\"\n }), \" using that client’s supported OAuth setup. See \", _jsx(_components.a, {\n href: \"https://docs.reasonmachines.com/docs/mcp\",\n children: \"Connect over MCP\"\n }), \" for the commands. The REST workflow above uses the HTTP API and does not require installing an MCP client.\"]\n }), \"\\n\", _jsx(\"sub\", {\n children: \"Auth: any valid API key (no scope)\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Verify credentials","description":"Returns the principal behind the current credential, its granted scopes, and the organization it can act on. Call this first to discover your `org_id` and available capabilities.\n\n## REST quickstart\n\nA Reason is the long-running agent a person keeps: its own conversation, instructions, Loops (standing work woken by a schedule or an event) and the Sessions it runs. Give it work by messaging it.\n\n1. Create a key at [reasonmachines.com/customize?tab=api](https://reasonmachines.com/customize?tab=api) (Settings > API). Send it only in `Authorization: Bearer \u003ckey>`, never in a URL.\n2. Call this endpoint and keep the returned `org_id`.\n3. List your Reasons with `GET /v3/organizations/{orgId}/reasons` (`sessions:read`). Your main Reason comes first; create a named one with `POST /reasons` (`run`).\n4. Message it with `POST /v3/organizations/{orgId}/reasons/{reasonId}/messages` (`run`) and read its replies with `GET` on the same path. Configure it with `PATCH /reasons/{reasonId}` (instructions, default model, default repositories), give it standing work with `POST /reasons/{reasonId}/loops` (`automations:write`), and read or edit memory with `/memory/files`, `/memory/file` and `/memory/search` (`scope=personal` for the key owner's own, `team` for the workspace's; `memory:read`, `memory:write`).\n5. For one unattended task, start a Session instead: POST a prompt to `/v3/organizations/{orgId}/sessions` with `reason_id`, `completion_mode: run_outcome` and an `idempotency_key` in the JSON body (HTTP 201 creates; 200 replays). Poll it with GET until status leaves running. Lifecycle exit does not prove success: only outcome success is a successful task; failure, action_required and null need handling. Follow `Retry-After` on HTTP 429.\n\n### Runnable Node.js example\n\nDownload [api-session.mjs](https://reasonmachines.com/examples/api-session.mjs), review it, and run it with Node.js 20 or newer. It creates real work that may incur usage. Set `REASON_API_KEY`, `REASON_PROMPT`, and a stable `REASON_IDEMPOTENCY_KEY` in your environment, then run `node api-session.mjs`. Optional `REASON_REPO` and `REASON_PROJECT_ID` (a Reason id) select resources explicitly. The example exits nonzero for failed, suspended, unresolved, or action-required tasks and times out after ten minutes without cancelling the remote session.\n\n## MCP is a separate client connection\n\nFor an MCP client, connect to `https://mcp.reasonmachines.com/mcp` using that client's supported OAuth setup. See [Connect over MCP](https://docs.reasonmachines.com/docs/mcp) for the commands. The REST workflow above uses the HTTP API and does not require installing an MCP client.\n\n\u003csub>Auth: any valid API key (no scope)\u003c/sub>","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/self","href":"/api-reference/account/verify-credentials","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/ara-90a60a07/1839bb79699ce185/copy-prompt.js"],"openApiReferenceData":{"operation":{"operationId":"getSelf","parameters":["232a9d57-84de-4b08-b0b9-c612775e9180"],"x-reason-mcp-description":"Returns who this connection acts as: `principal_type`, `user_id` or `service_user_id`, granted `scopes`, and the bound workspace's `org_id`, `organization_name` and `organization_slug`. A cheap first call that confirms the connection works and shows which scopes the tools can use.","tags":["Account"],"summary":"Verify credentials","description":"Returns the principal behind the current credential, its granted scopes, and the organization it can act on. Call this first to discover your `org_id` and available capabilities.\n\n## REST quickstart\n\nA Reason is the long-running agent a person keeps: its own conversation, instructions, Loops (standing work woken by a schedule or an event) and the Sessions it runs. Give it work by messaging it.\n\n1. Create a key at [reasonmachines.com/customize?tab=api](https://reasonmachines.com/customize?tab=api) (Settings > API). Send it only in `Authorization: Bearer \u003ckey>`, never in a URL.\n2. Call this endpoint and keep the returned `org_id`.\n3. List your Reasons with `GET /v3/organizations/{orgId}/reasons` (`sessions:read`). Your main Reason comes first; create a named one with `POST /reasons` (`run`).\n4. Message it with `POST /v3/organizations/{orgId}/reasons/{reasonId}/messages` (`run`) and read its replies with `GET` on the same path. Configure it with `PATCH /reasons/{reasonId}` (instructions, default model, default repositories), give it standing work with `POST /reasons/{reasonId}/loops` (`automations:write`), and read or edit memory with `/memory/files`, `/memory/file` and `/memory/search` (`scope=personal` for the key owner's own, `team` for the workspace's; `memory:read`, `memory:write`).\n5. For one unattended task, start a Session instead: POST a prompt to `/v3/organizations/{orgId}/sessions` with `reason_id`, `completion_mode: run_outcome` and an `idempotency_key` in the JSON body (HTTP 201 creates; 200 replays). Poll it with GET until status leaves running. Lifecycle exit does not prove success: only outcome success is a successful task; failure, action_required and null need handling. Follow `Retry-After` on HTTP 429.\n\n### Runnable Node.js example\n\nDownload [api-session.mjs](https://reasonmachines.com/examples/api-session.mjs), review it, and run it with Node.js 20 or newer. It creates real work that may incur usage. Set `REASON_API_KEY`, `REASON_PROMPT`, and a stable `REASON_IDEMPOTENCY_KEY` in your environment, then run `node api-session.mjs`. Optional `REASON_REPO` and `REASON_PROJECT_ID` (a Reason id) select resources explicitly. The example exits nonzero for failed, suspended, unresolved, or action-required tasks and times out after ten minutes without cancelling the remote session.\n\n## MCP is a separate client connection\n\nFor an MCP client, connect to `https://mcp.reasonmachines.com/mcp` using that client's supported OAuth setup. See [Connect over MCP](https://docs.reasonmachines.com/docs/mcp) for the commands. The REST workflow above uses the HTTP API and does not require installing an MCP client.\n\n\u003csub>Auth: any valid API key (no scope)\u003c/sub>","responses":{"200":"254debcb-1b1e-4ee7-b808-9513c3ca9f3b","401":"410feacd-a98d-429a-8fa6-e45bd51ba71c","403":"c86b3086-0fb8-4e9e-9bb3-1c55f12d10dd","429":"7189cf16-bd63-400e-aa34-7db6cb54bf6a"},"security":["72db28b4-7dae-4ec5-91a0-d9cf10f3fdfe"],"method":"get","type":"path","servers":["10505307-9893-4f28-9abd-3b2cfb058258"],"path":"/v3/self","baseUrlOptions":["https://api.reasonmachines.com"],"title":"Verify credentials","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"232a9d57-84de-4b08-b0b9-c612775e9180":{"in":"query","name":"cloud_activation","required":false,"schema":{"type":"string","enum":["1"],"isRequired":false,"description":"Include the current cloud activation state for this credential's workspace. Does not start work or reserve credit.","uniqueKey":"","typeLabel":"enum\u003cstring>"},"description":"Include the current cloud activation state for this credential's workspace. Does not start work or reserve credit."}},"responses":{"254debcb-1b1e-4ee7-b808-9513c3ca9f3b":{"description":"The authenticated principal.","content":{"application/json":{"schema":{"type":"object","properties":{"principal_type":{"type":"string","enum":["service_user","user"],"description":"API keys resolve to `service_user`; MCP OAuth grants resolve to `user`.","isRequired":true,"uniqueKey":"principal_type","typeLabel":"enum\u003cstring>"},"org_id":{"type":"string","description":"Organization pinned to the current credential.","isRequired":true,"uniqueKey":"org_id","typeLabel":"string"},"scopes":{"type":"array","items":{"type":"string","uniqueKey":"scopes.items.[INDEX]","typeLabel":"string"},"description":"Capabilities granted to the current API key or OAuth token.","isRequired":true,"uniqueKey":"scopes","typeLabel":"string[]"},"service_user_id":{"type":"string","description":"Present when `principal_type` is `service_user`.","uniqueKey":"service_user_id","typeLabel":"string"},"service_user_name":{"oneOf":[{"description":"Present when `principal_type` is `service_user`.","type":"string","uniqueKey":"service_user_name.oneOf.0","typeLabel":"string"},{"description":"Present when `principal_type` is `service_user`.","type":"null","uniqueKey":"service_user_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"service_user_name","typeLabel":"string | null"},"user_id":{"type":"string","description":"Present when `principal_type` is `user`.","uniqueKey":"user_id","typeLabel":"string"},"user_name":{"oneOf":[{"description":"Present when `principal_type` is `user`.","type":"string","uniqueKey":"user_name.oneOf.0","typeLabel":"string"},{"description":"Present when `principal_type` is `user`.","type":"null","uniqueKey":"user_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"user_name","typeLabel":"string | null"},"email":{"oneOf":[{"description":"Present when `principal_type` is `user`.","type":"string","uniqueKey":"email.oneOf.0","typeLabel":"string"},{"description":"Present when `principal_type` is `user`.","type":"null","uniqueKey":"email.oneOf.1","typeLabel":"null"}],"uniqueKey":"email","typeLabel":"string | null"},"organization_name":{"oneOf":[{"description":"Display name of the organization pinned to this credential.","type":"string","uniqueKey":"organization_name.oneOf.0","typeLabel":"string"},{"description":"Display name of the organization pinned to this credential.","type":"null","uniqueKey":"organization_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"organization_name","typeLabel":"string | null"},"organization_slug":{"oneOf":[{"description":"URL slug of the organization pinned to this credential.","type":"string","uniqueKey":"organization_slug.oneOf.0","typeLabel":"string"},{"description":"URL slug of the organization pinned to this credential.","type":"null","uniqueKey":"organization_slug.oneOf.1","typeLabel":"null"}],"uniqueKey":"organization_slug","typeLabel":"string | null"},"cloud_activation":{"oneOf":[{"description":"Optional cloud entitlement read requested with cloud_activation=1. Null when this flow is unavailable; readiness does not reserve credit or compute.","type":"object","properties":{"ready":{"type":"boolean","isRequired":true,"uniqueKey":"cloud_activation.oneOf.0.ready","typeLabel":"boolean"},"organization":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"cloud_activation.oneOf.0.organization.id","typeLabel":"string"},"slug":{"type":"string","isRequired":true,"uniqueKey":"cloud_activation.oneOf.0.organization.slug","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"cloud_activation.oneOf.0.organization.name","typeLabel":"string"}},"required":["id","slug","name"],"isRequired":true,"uniqueKey":"cloud_activation.oneOf.0.organization","typeLabel":"object"},"poll_after_ms":{"type":"integer","minimum":1000,"maximum":30000,"isRequired":true,"uniqueKey":"cloud_activation.oneOf.0.poll_after_ms","typeLabel":"integer"}},"required":["ready","organization","poll_after_ms"],"uniqueKey":"cloud_activation.oneOf.0","typeLabel":"object"},{"description":"Optional cloud entitlement read requested with cloud_activation=1. Null when this flow is unavailable; readiness does not reserve credit or compute.","type":"null","properties":{"ready":{"type":"boolean"},"organization":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"]},"poll_after_ms":{"type":"integer","minimum":1000,"maximum":30000}},"required":["ready","organization","poll_after_ms"],"uniqueKey":"cloud_activation.oneOf.1","typeLabel":"null"}],"uniqueKey":"cloud_activation","typeLabel":"object | null"},"capabilities_url":{"type":"string","description":"Present only for an admin API key (its single scope is the admin scope): where that key's admin capabilities are documented.","uniqueKey":"capabilities_url","typeLabel":"string"},"mcp_connections":{"type":"array","items":{"type":"object","properties":{"client_id":{"type":"string","description":"OAuth client id of the connected MCP client.","isRequired":true,"uniqueKey":"mcp_connections.items.[INDEX].client_id","typeLabel":"string"},"client_name":{"type":"string","description":"Name the MCP client registered with.","isRequired":true,"uniqueKey":"mcp_connections.items.[INDEX].client_name","typeLabel":"string"},"last_used_at":{"oneOf":[{"type":"string","description":"When the grant was last used (ISO 8601), or null if never.","isRequired":true,"uniqueKey":"mcp_connections.items.[INDEX].last_used_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"When the grant was last used (ISO 8601), or null if never.","isRequired":true,"uniqueKey":"mcp_connections.items.[INDEX].last_used_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"mcp_connections.items.[INDEX].last_used_at","typeLabel":"string | null"}},"required":["client_id","client_name","last_used_at"],"uniqueKey":"mcp_connections.items.[INDEX]","typeLabel":"object"},"description":"Present when `principal_type` is `user`: active MCP OAuth client grants for the signed-in user and organization.","uniqueKey":"mcp_connections","typeLabel":"object[]"}},"required":["principal_type","org_id","scopes"],"uniqueKey":"","typeLabel":"object"},"example":{"principal_type":"service_user","service_user_id":"key_3f9a","service_user_name":"ci-bot","org_id":"org_8c2d1e","scopes":["run","sessions:read","repos:read"]},"examples":{"Example":{"title":"Example","value":{"principal_type":"service_user","service_user_id":"key_3f9a","service_user_name":"ci-bot","org_id":"org_8c2d1e","scopes":["run","sessions:read","repos:read"]}}},"exampleType":"examples"}},"exampleType":"examples"},"410feacd-a98d-429a-8fa6-e45bd51ba71c":{"description":"Missing, invalid, or expired key.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"oneOf":[{"type":"string","uniqueKey":"error.oneOf.0","typeLabel":"string"},{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"error.oneOf.1.type","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.oneOf.1.message","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","uniqueKey":"error.oneOf.1.request_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"error.oneOf.1.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.oneOf.1.request_id","typeLabel":"string | null"}},"uniqueKey":"error.oneOf.1","typeLabel":"object"}],"uniqueKey":"error","typeLabel":"string | object"},"message":{"type":"string","uniqueKey":"message","typeLabel":"string"},"required_scope":{"type":"string","description":"The capability required when the request was denied for a missing scope.","uniqueKey":"required_scope","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"missing_bearer","message":"Authorization required"},"examples":{"Example":{"title":"Example","value":{"error":"missing_bearer","message":"Authorization required"}}},"exampleType":"examples"}},"exampleType":"examples"},"c86b3086-0fb8-4e9e-9bb3-1c55f12d10dd":{"description":"The key lacks the required scope or role.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"oneOf":[{"type":"string","uniqueKey":"error.oneOf.0","typeLabel":"string"},{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"error.oneOf.1.type","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.oneOf.1.message","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","uniqueKey":"error.oneOf.1.request_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"error.oneOf.1.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.oneOf.1.request_id","typeLabel":"string | null"}},"uniqueKey":"error.oneOf.1","typeLabel":"object"}],"uniqueKey":"error","typeLabel":"string | object"},"message":{"type":"string","uniqueKey":"message","typeLabel":"string"},"required_scope":{"type":"string","description":"The capability required when the request was denied for a missing scope.","uniqueKey":"required_scope","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"missing_scope","required_scope":"sessions:read"},"examples":{"Example":{"title":"Example","value":{"error":"missing_scope","required_scope":"sessions:read"}}},"exampleType":"examples"}},"exampleType":"examples"},"7189cf16-bd63-400e-aa34-7db6cb54bf6a":{"description":"Too many requests. Retry after the number of seconds in the `Retry-After` response header.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1},"required":true}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"oneOf":[{"type":"string","uniqueKey":"error.oneOf.0","typeLabel":"string"},{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"error.oneOf.1.type","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.oneOf.1.message","typeLabel":"string"},"request_id":{"oneOf":[{"type":"string","uniqueKey":"error.oneOf.1.request_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"error.oneOf.1.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.oneOf.1.request_id","typeLabel":"string | null"}},"uniqueKey":"error.oneOf.1","typeLabel":"object"}],"uniqueKey":"error","typeLabel":"string | object"},"message":{"type":"string","uniqueKey":"message","typeLabel":"string"},"required_scope":{"type":"string","description":"The capability required when the request was denied for a missing scope.","uniqueKey":"required_scope","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"type":"rate_limited","message":"This API key exceeded its request-rate limit"}},"examples":{"Example":{"title":"Example","value":{"error":{"type":"rate_limited","message":"This API key exceeded its request-rate limit"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"72db28b4-7dae-4ec5-91a0-d9cf10f3fdfe":{"reasonApiKey":{"type":"http","scheme":"bearer","bearerFormat":"reason_\u003chex> (legacy: ara_\u003chex>)","description":"Your Reason API key from Settings › API keys. New keys use `reason_`; legacy `ara_` keys remain accepted. Keys are capability-scoped: run, mcp:read, mcp:write, secrets:read, secrets:write, sessions:read, sessions:debug, devices:read, devices:write, devices:use, computers:read, computers:write, ssh:write, knowledge:read, memory:read, memory:write, skills:read, skills:write, pages:read, pages:write, repos:read, repos:write, reviews:read, reviews:write, deployment:read, analytics:read, org:read, org:write, attachments:read, attachments:write, guardrails:read, guardrails:write, network:read, network:write, automations:read, automations:write, agent_auth:read. devices:write, devices:use, computers:read, computers:write, ssh:write, network:read and network:write are opt-in, excluded from default keys. computers:read lists visible cloud and connected computers without waking them or granting execution access. devices:read discovers local Device targets; devices:use separately consents to local execution, so a discover-and-run local workflow needs both. devices:write manages enrollment and device grants; computers:write creates or deletes cloud computers; ssh:write manages retained SSH access. network:read reads the saved workspace network policy; network:write replaces custom allowed hosts and requires a current organization owner/admin. Legacy project PATCH requests containing network_allowed_hosts also require network:write plus their existing run scope and project management permission; saved project hosts do not affect current session egress. Only owners/admins can mint or manage keys with network:write; keys cannot grant themselves more authority. See /docs/network-policies for replacement semantics and runtime applicability. mcp:write manages MCP server configuration only; it does not authorize remote MCP-tool execution. sessions:read reads sessions, including the assistant, reasoning and tool activity in their events. sessions:debug is privileged: only for organization owners/admins, it expands session events to the full diagnostic projection (diagnostic event kinds, status text and raw event metadata).","scopes":[],"schemeName":"reasonApiKey"}}},"servers":{"10505307-9893-4f28-9abd-3b2cfb058258":{"url":"https://api.reasonmachines.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"reason_\u003chex> (legacy: ara_\u003chex>)","description":"Your Reason API key from Settings › API keys. New keys use `reason_`; legacy `ara_` keys remain accepted. Keys are capability-scoped: run, mcp:read, mcp:write, secrets:read, secrets:write, sessions:read, sessions:debug, devices:read, devices:write, devices:use, computers:read, computers:write, ssh:write, knowledge:read, memory:read, memory:write, skills:read, skills:write, pages:read, pages:write, repos:read, repos:write, reviews:read, reviews:write, deployment:read, analytics:read, org:read, org:write, attachments:read, attachments:write, guardrails:read, guardrails:write, network:read, network:write, automations:read, automations:write, agent_auth:read. devices:write, devices:use, computers:read, computers:write, ssh:write, network:read and network:write are opt-in, excluded from default keys. computers:read lists visible cloud and connected computers without waking them or granting execution access. devices:read discovers local Device targets; devices:use separately consents to local execution, so a discover-and-run local workflow needs both. devices:write manages enrollment and device grants; computers:write creates or deletes cloud computers; ssh:write manages retained SSH access. network:read reads the saved workspace network policy; network:write replaces custom allowed hosts and requires a current organization owner/admin. Legacy project PATCH requests containing network_allowed_hosts also require network:write plus their existing run scope and project management permission; saved project hosts do not affect current session egress. Only owners/admins can mint or manage keys with network:write; keys cannot grant themselves more authority. See /docs/network-policies for replacement semantics and runtime applicability. mcp:write manages MCP server configuration only; it does not authorize remote MCP-tool execution. sessions:read reads sessions, including the assistant, reasoning and tool activity in their events. sessions:debug is privileged: only for organization owners/admins, it expands session events to the full diagnostic projection (diagnostic event kinds, status text and raw event metadata).","scopes":[],"schemeName":"reasonApiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Your Reason API key from Settings › API keys. New keys use `reason_`; legacy `ara_` keys remain accepted. Keys are capability-scoped: run, mcp:read, mcp:write, secrets:read, secrets:write, sessions:read, sessions:debug, devices:read, devices:write, devices:use, computers:read, computers:write, ssh:write, knowledge:read, memory:read, memory:write, skills:read, skills:write, pages:read, pages:write, repos:read, repos:write, reviews:read, reviews:write, deployment:read, analytics:read, org:read, org:write, attachments:read, attachments:write, guardrails:read, guardrails:write, network:read, network:write, automations:read, automations:write, agent_auth:read. devices:write, devices:use, computers:read, computers:write, ssh:write, network:read and network:write are opt-in, excluded from default keys. computers:read lists visible cloud and connected computers without waking them or granting execution access. devices:read discovers local Device targets; devices:use separately consents to local execution, so a discover-and-run local workflow needs both. devices:write manages enrollment and device grants; computers:write creates or deletes cloud computers; ssh:write manages retained SSH access. network:read reads the saved workspace network policy; network:write replaces custom allowed hosts and requires a current organization owner/admin. Legacy project PATCH requests containing network_allowed_hosts also require network:write plus their existing run scope and project management permission; saved project hosts do not affect current session egress. Only owners/admins can mint or manage keys with network:write; keys cannot grant themselves more authority. See /docs/network-policies for replacement semantics and runtime applicability. mcp:write manages MCP server configuration only; it does not authorize remote MCP-tool execution. sessions:read reads sessions, including the assistant, reasoning and tool activity in their events. sessions:debug is privileged: only for organization owners/admins, it expands session events to the full diagnostic projection (diagnostic event kinds, status text and raw event metadata).","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"reasonApiKey","name":"Authorization"}],"title":"reasonApiKey"}]},"originalFileLocation":"openapi.json"},"subdomain":"ara-90a60a07","siteName":"Reason Documentation","title":"Verify credentials - Reason Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-08T11:20:11.332Z","originalFileLocation":"api-reference/account/verify-credentials.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=\"Returns the principal behind the current credential, its granted scopes, and the organization it can act on. Call this first to discover your org_id and available capabilities. ## REST quickstart A Reason is the long-running agent a person keeps: its own conversation, instructions, Loops (standing work woken by a schedule or an event) and the Sessions it runs. Give it work by messaging it. 1. Create a key at reasonmachines.com/customize?tab=api (Settings \u0026gt; API). Send it only in Authorization: Bearer , never in a URL. 2. Call this endpoint and keep the returned org_id. 3. List your Reasons with GET /v3/organizations/{orgId}/reasons (sessions:read). Your main Reason comes first; create a named one with POST /reasons (run). 4. Message it with POST /v3/organizations/{orgId}/reasons/{reasonId}/messages (run) and read its replies with GET on the same path. Configure it with PATCH /reasons/{reasonId} (instructions, default model, default repositories), give it standing work with POST /reasons/{reasonId}/loops (automations:write), and read or edit memory with /memory/files, /memory/file and /memory/search (scope=personal for the key owner\u0026#x27;s own, team for the workspace\u0026#x27;s; memory:read, memory:write). 5. For one unattended task, start a Session instead: POST a prompt to /v3/organizations/{orgId}/sessions with reason_id, completion_mode: run_outcome and an idempotency_key in the JSON body (HTTP 201 creates; 200 replays). Poll it with GET until status leaves running. Lifecycle exit does not prove success: only outcome success is a successful task; failure, action_required and null need handling. Follow Retry-After on HTTP 429. ### Runnable Node.js example Download api-session.mjs, review it, and run it with Node.js 20 or newer. It creates real work that may incur usage. Set REASON_API_KEY, REASON_PROMPT, and a stable REASON_IDEMPOTENCY_KEY in your environment, then run node api-session.mjs. Optional REASON_REPO and REASON_PROJECT_ID (a Reason id) select resources explicitly. The example exits nonzero for failed, suspended, unresolved, or action-required tasks and times out after ten minutes without cancelling the remote session. ## MCP is a separate client connection For an MCP client, connect to https://mcp.reasonmachines.com/mcp using that client\u0026#x27;s supported OAuth setup. See Connect over MCP for the commands. The REST workflow above uses the HTTP API and does not require installing an MCP client. Auth: any valid API key (no scope)\">\u003cmeta data-mint-head name=\"application-name\" content=\"Reason Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://reasonmachines.com/favicon-512.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://reasonmachines.com/favicon-512.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://reasonmachines.com/favicon-512.png\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/png\" href=\"https://reasonmachines.com/favicon-512.png\">\u003cmeta data-mint-head property=\"og:title\" content=\"Verify credentials - Reason Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns the principal behind the current credential, its granted scopes, and the organization it can act on. Call this first to discover your org_id and available capabilities. ## REST quickstart A Reason is the long-running agent a person keeps: its own conversation, instructions, Loops (standing work woken by a schedule or an event) and the Sessions it runs. Give it work by messaging it. 1. Create a key at reasonmachines.com/customize?tab=api (Settings \u0026gt; API). Send it only in Authorization: Bearer , never in a URL. 2. Call this endpoint and keep the returned org_id. 3. List your Reasons with GET /v3/organizations/{orgId}/reasons (sessions:read). Your main Reason comes first; create a named one with POST /reasons (run). 4. Message it with POST /v3/organizations/{orgId}/reasons/{reasonId}/messages (run) and read its replies with GET on the same path. Configure it with PATCH /reasons/{reasonId} (instructions, default model, default repositories), give it standing work with POST /reasons/{reasonId}/loops (automations:write), and read or edit memory with /memory/files, /memory/file and /memory/search (scope=personal for the key owner\u0026#x27;s own, team for the workspace\u0026#x27;s; memory:read, memory:write). 5. For one unattended task, start a Session instead: POST a prompt to /v3/organizations/{orgId}/sessions with reason_id, completion_mode: run_outcome and an idempotency_key in the JSON body (HTTP 201 creates; 200 replays). Poll it with GET until status leaves running. Lifecycle exit does not prove success: only outcome success is a successful task; failure, action_required and null need handling. Follow Retry-After on HTTP 429. ### Runnable Node.js example Download api-session.mjs, review it, and run it with Node.js 20 or newer. It creates real work that may incur usage. Set REASON_API_KEY, REASON_PROMPT, and a stable REASON_IDEMPOTENCY_KEY in your environment, then run node api-session.mjs. Optional REASON_REPO and REASON_PROJECT_ID (a Reason id) select resources explicitly. The example exits nonzero for failed, suspended, unresolved, or action-required tasks and times out after ten minutes without cancelling the remote session. ## MCP is a separate client connection For an MCP client, connect to https://mcp.reasonmachines.com/mcp using that client\u0026#x27;s supported OAuth setup. See Connect over MCP for the commands. The REST workflow above uses the HTTP API and does not require installing an MCP client. Auth: any valid API key (no scope)\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Reason Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.reasonmachines.com/api-reference/account/verify-credentials\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ara-90a60a07.mintlify.site/_mintlify/api/og/v2?division=Account\u0026amp;title=Verify+credentials\u0026amp;description=Returns+the+principal+behind+the+current+credential%2C+its+granted+scopes%2C+and+the+organization+it+can+act+on.+Call+this+first+to+discover+your+%60org_id%60+and+avail\u0026amp;theme=6aa6cbfdfc0baaa2810d6665\u0026amp;signature=bfc5794a76df6218f5eafcaf37b77cde4ae62dcb42d7ca81d26e7b8aab2582d8\">\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=\"Verify credentials - Reason Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns the principal behind the current credential, its granted scopes, and the organization it can act on. Call this first to discover your org_id and available capabilities. ## REST quickstart A Reason is the long-running agent a person keeps: its own conversation, instructions, Loops (standing work woken by a schedule or an event) and the Sessions it runs. Give it work by messaging it. 1. Create a key at reasonmachines.com/customize?tab=api (Settings \u0026gt; API). Send it only in Authorization: Bearer , never in a URL. 2. Call this endpoint and keep the returned org_id. 3. List your Reasons with GET /v3/organizations/{orgId}/reasons (sessions:read). Your main Reason comes first; create a named one with POST /reasons (run). 4. Message it with POST /v3/organizations/{orgId}/reasons/{reasonId}/messages (run) and read its replies with GET on the same path. Configure it with PATCH /reasons/{reasonId} (instructions, default model, default repositories), give it standing work with POST /reasons/{reasonId}/loops (automations:write), and read or edit memory with /memory/files, /memory/file and /memory/search (scope=personal for the key owner\u0026#x27;s own, team for the workspace\u0026#x27;s; memory:read, memory:write). 5. For one unattended task, start a Session instead: POST a prompt to /v3/organizations/{orgId}/sessions with reason_id, completion_mode: run_outcome and an idempotency_key in the JSON body (HTTP 201 creates; 200 replays). Poll it with GET until status leaves running. Lifecycle exit does not prove success: only outcome success is a successful task; failure, action_required and null need handling. Follow Retry-After on HTTP 429. ### Runnable Node.js example Download api-session.mjs, review it, and run it with Node.js 20 or newer. It creates real work that may incur usage. Set REASON_API_KEY, REASON_PROMPT, and a stable REASON_IDEMPOTENCY_KEY in your environment, then run node api-session.mjs. Optional REASON_REPO and REASON_PROJECT_ID (a Reason id) select resources explicitly. The example exits nonzero for failed, suspended, unresolved, or action-required tasks and times out after ten minutes without cancelling the remote session. ## MCP is a separate client connection For an MCP client, connect to https://mcp.reasonmachines.com/mcp using that client\u0026#x27;s supported OAuth setup. See Connect over MCP for the commands. The REST workflow above uses the HTTP API and does not require installing an MCP client. Auth: any valid API key (no scope)\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ara-90a60a07.mintlify.site/_mintlify/api/og/v2?division=Account\u0026amp;title=Verify+credentials\u0026amp;description=Returns+the+principal+behind+the+current+credential%2C+its+granted+scopes%2C+and+the+organization+it+can+act+on.+Call+this+first+to+discover+your+%60org_id%60+and+avail\u0026amp;theme=6aa6cbfdfc0baaa2810d6665\u0026amp;signature=bfc5794a76df6218f5eafcaf37b77cde4ae62dcb42d7ca81d26e7b8aab2582d8\">\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=\"https://mintlify.s3.us-west-1.amazonaws.com/ara-90a60a07/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Reason Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0d0d0d\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.reasonmachines.com/api-reference/account/verify-credentials\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/account/verify-credentials.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.reasonmachines.com/#organization\",\"name\":\"Reason Documentation\",\"url\":\"https://docs.reasonmachines.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://reasonmachines.com/reason-logo/reason-logo-black-transparent-512.png\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.reasonmachines.com#website\",\"name\":\"Reason Documentation\",\"url\":\"https://docs.reasonmachines.com\",\"publisher\":{\"@id\":\"https://docs.reasonmachines.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.reasonmachines.com/api-reference/account/verify-credentials#webpage\",\"url\":\"https://docs.reasonmachines.com/api-reference/account/verify-credentials\",\"name\":\"Verify credentials\",\"description\":\"Returns the principal behind the current credential, its granted scopes, and the organization it can act on. Call this first to discover your org_id and available capabilities. ## REST quickstart A Reason is the long-running agent a person keeps: its own conversation, instructions, Loops (standing work woken by a schedule or an event) and the Sessions it runs. Give it work by messaging it. 1. Create a key at reasonmachines.com/customize?tab=api (Settings > API). Send it only in Authorization: Bearer , never in a URL. 2. Call this endpoint and keep the returned org_id. 3. List your Reasons with GET /v3/organizations/{orgId}/reasons (sessions:read). Your main Reason comes first; create a named one with POST /reasons (run). 4. Message it with POST /v3/organizations/{orgId}/reasons/{reasonId}/messages (run) and read its replies with GET on the same path. Configure it with PATCH /reasons/{reasonId} (instructions, default model, default repositories), give it standing work with POST /reasons/{reasonId}/loops (automations:write), and read or edit memory with /memory/files, /memory/file and /memory/search (scope=personal for the key owner's own, team for the workspace's; memory:read, memory:write). 5. For one unattended task, start a Session instead: POST a prompt to /v3/organizations/{orgId}/sessions with reason_id, completion_mode: run_outcome and an idempotency_key in the JSON body (HTTP 201 creates; 200 replays). Poll it with GET until status leaves running. Lifecycle exit does not prove success: only outcome success is a successful task; failure, action_required and null need handling. Follow Retry-After on HTTP 429. ### Runnable Node.js example Download api-session.mjs, review it, and run it with Node.js 20 or newer. It creates real work that may incur usage. Set REASON_API_KEY, REASON_PROMPT, and a stable REASON_IDEMPOTENCY_KEY in your environment, then run node api-session.mjs. Optional REASON_REPO and REASON_PROJECT_ID (a Reason id) select resources explicitly. The example exits nonzero for failed, suspended, unresolved, or action-required tasks and times out after ten minutes without cancelling the remote session. ## MCP is a separate client connection For an MCP client, connect to https://mcp.reasonmachines.com/mcp using that client's supported OAuth setup. See Connect over MCP for the commands. The REST workflow above uses the HTTP API and does not require installing an MCP client. Auth: any valid API key (no scope)\",\"dateModified\":\"2026-11-08T11:20:11.332Z\",\"isPartOf\":{\"@id\":\"https://docs.reasonmachines.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.reasonmachines.com/api-reference/account/verify-credentials#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.reasonmachines.com/api-reference/account/verify-credentials#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Reason Documentation\",\"item\":\"https://docs.reasonmachines.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Verify credentials\",\"item\":\"https://docs.reasonmachines.com/api-reference/account/verify-credentials\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.reasonmachines.com/api-reference/account/verify-credentials#apireference\",\"headline\":\"Verify credentials\",\"name\":\"Verify credentials\",\"description\":\"Returns the principal behind the current credential, its granted scopes, and the organization it can act on. Call this first to discover your org_id and available capabilities. ## REST quickstart A Reason is the long-running agent a person keeps: its own conversation, instructions, Loops (standing work woken by a schedule or an event) and the Sessions it runs. Give it work by messaging it. 1. Create a key at reasonmachines.com/customize?tab=api (Settings > API). Send it only in Authorization: Bearer , never in a URL. 2. Call this endpoint and keep the returned org_id. 3. List your Reasons with GET /v3/organizations/{orgId}/reasons (sessions:read). Your main Reason comes first; create a named one with POST /reasons (run). 4. Message it with POST /v3/organizations/{orgId}/reasons/{reasonId}/messages (run) and read its replies with GET on the same path. Configure it with PATCH /reasons/{reasonId} (instructions, default model, default repositories), give it standing work with POST /reasons/{reasonId}/loops (automations:write), and read or edit memory with /memory/files, /memory/file and /memory/search (scope=personal for the key owner's own, team for the workspace's; memory:read, memory:write). 5. For one unattended task, start a Session instead: POST a prompt to /v3/organizations/{orgId}/sessions with reason_id, completion_mode: run_outcome and an idempotency_key in the JSON body (HTTP 201 creates; 200 replays). Poll it with GET until status leaves running. Lifecycle exit does not prove success: only outcome success is a successful task; failure, action_required and null need handling. Follow Retry-After on HTTP 429. ### Runnable Node.js example Download api-session.mjs, review it, and run it with Node.js 20 or newer. It creates real work that may incur usage. Set REASON_API_KEY, REASON_PROMPT, and a stable REASON_IDEMPOTENCY_KEY in your environment, then run node api-session.mjs. Optional REASON_REPO and REASON_PROJECT_ID (a Reason id) select resources explicitly. The example exits nonzero for failed, suspended, unresolved, or action-required tasks and times out after ten minutes without cancelling the remote session. ## MCP is a separate client connection For an MCP client, connect to https://mcp.reasonmachines.com/mcp using that client's supported OAuth setup. See Connect over MCP for the commands. The REST workflow above uses the HTTP API and does not require installing an MCP client. Auth: any valid API key (no scope)\",\"url\":\"https://docs.reasonmachines.com/api-reference/account/verify-credentials\",\"mainEntityOfPage\":{\"@id\":\"https://docs.reasonmachines.com/api-reference/account/verify-credentials#webpage\"},\"dateModified\":\"2026-11-08T11:20:11.332Z\",\"publisher\":{\"@id\":\"https://docs.reasonmachines.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.reasonmachines.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Reason Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Reason Documentation","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/docs/guide"}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"API overview","description":"Base URL, authentication, defaults, polling, and errors for the Reason HTTP API. Every endpoint is listed in the reference.","href":"/docs/api-overview"}]},{"group":"Endpoints","pages":[{"group":"Account","pages":[{"title":"Verify credentials","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/self","href":"/api-reference/account/verify-credentials"},{"title":"Read backend deployment identity","description":"Returns non-secret release metadata used to verify an exact backend deployment.\n\n\u003csub>Scope: `deployment:read`\u003c/sub>","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/deployment","href":"/api-reference/account/read-backend-deployment-identity"},{"title":"Fetch the OpenAPI document","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/openapi.json","href":"/api-reference/account/fetch-the-openapi-document"},{"title":"List Early Access features","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/early-access","href":"/api-reference/account/list-early-access-features"},{"title":"Read workspace readiness","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/self/readiness","href":"/api-reference/account/read-workspace-readiness"}]},{"group":"Feedback","pages":[{"title":"Report agent feedback","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/feedback","href":"/api-reference/feedback/report-agent-feedback"}]},{"group":"Machines","pages":[{"title":"Approve a worker with a Machine token","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/machines/enrollment-tickets","href":"/api-reference/machines/approve-a-worker-with-a-machine-token"},{"title":"List Machines","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/machines","href":"/api-reference/machines/list-machines"},{"title":"Create a Machine","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/machines","href":"/api-reference/machines/create-a-machine"},{"title":"Read a Machine","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/machines/{machine}","href":"/api-reference/machines/read-a-machine"},{"title":"Delete a Machine","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/machines/{machine}","href":"/api-reference/machines/delete-a-machine"},{"title":"Approve a worker for a Machine","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/machines/{machine}/enrollment-tickets","href":"/api-reference/machines/approve-a-worker-for-a-machine"},{"title":"List Machine tokens","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/machines/{machine}/tokens","href":"/api-reference/machines/list-machine-tokens"},{"title":"Create a Machine token","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/machines/{machine}/tokens","href":"/api-reference/machines/create-a-machine-token"},{"title":"Revoke a Machine token","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/machines/{machine}/tokens/{tokenId}","href":"/api-reference/machines/revoke-a-machine-token"}]},{"group":"Agent network","pages":[{"title":"Get a Reason Network proof for this computer","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/network/proof","href":"/api-reference/agent-network/get-a-reason-network-proof-for-this-computer"},{"title":"List your Reason Network teams","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/network/teams","href":"/api-reference/agent-network/list-your-reason-network-teams"},{"title":"Register one of your Reason Network teams","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/network/teams","href":"/api-reference/agent-network/register-one-of-your-reason-network-teams"},{"title":"Remove a Reason Network team nobody is on any more","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/network/teams","href":"/api-reference/agent-network/remove-a-reason-network-team-nobody-is-on-any-more"},{"title":"Remove a Reason Network team from your directory","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/network/teams/forget","href":"/api-reference/agent-network/remove-a-reason-network-team-from-your-directory"},{"title":"Say this computer left one of your Reason Network teams","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/network/teams/leave","href":"/api-reference/agent-network/say-this-computer-left-one-of-your-reason-network-teams"},{"title":"Get the workspace's agent network","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/agent-network","href":"/api-reference/agent-network/get-the-workspaces-agent-network"},{"title":"Replace the workspace's agent network join link","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/agent-network","href":"/api-reference/agent-network/replace-the-workspaces-agent-network-join-link"},{"title":"Start the workspace's agent network, or get the one that exists","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/agent-network","href":"/api-reference/agent-network/start-the-workspaces-agent-network-or-get-the-one-that-exists"},{"title":"List the agents on the caller's Reason Network","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/agent-network/agents","href":"/api-reference/agent-network/list-the-agents-on-the-callers-reason-network"},{"title":"Read the caller's Reason Network inbox","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/agent-network/inbox","href":"/api-reference/agent-network/read-the-callers-reason-network-inbox"},{"title":"Rename the caller's session on Reason Network","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/agent-network/me","href":"/api-reference/agent-network/rename-the-callers-session-on-reason-network"},{"title":"Ask an agent on the caller's Reason Network","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/agent-network/messages","href":"/api-reference/agent-network/ask-an-agent-on-the-callers-reason-network"},{"title":"Move the caller's connection to another of its person's Reason Network networks","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/agent-network/network","href":"/api-reference/agent-network/move-the-callers-connection-to-another-of-its-persons-reason-network-networks"},{"title":"List the Reason Network networks the caller's connection can join","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/agent-network/networks","href":"/api-reference/agent-network/list-the-reason-network-networks-the-callers-connection-can-join"},{"title":"Claim the next agent network call this computer carries","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/agent-network/relay/claim","href":"/api-reference/agent-network/claim-the-next-agent-network-call-this-computer-carries"},{"title":"Report the outcome of a claimed agent network call","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/agent-network/relay/jobs/{jobId}","href":"/api-reference/agent-network/report-the-outcome-of-a-claimed-agent-network-call"},{"title":"Hand over messages that reached the sessions this computer sends from or carries","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/agent-network/relay/replies","href":"/api-reference/agent-network/hand-over-messages-that-reached-the-sessions-this-computer-sends-from-or-carries"},{"title":"Keep this computer's agents' Network messages (retired)","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/agent-network/relay/transcript","href":"/api-reference/agent-network/keep-this-computers-agents-network-messages-retired"},{"title":"Report aggregate network usage","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/agent-network/relay/usage","href":"/api-reference/agent-network/report-aggregate-network-usage"},{"title":"Send a message on the caller's Reason Network","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/agent-network/send","href":"/api-reference/agent-network/send-a-message-on-the-callers-reason-network"},{"title":"Check an outgoing Network message without resending","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/agent-network/send/status","href":"/api-reference/agent-network/check-an-outgoing-network-message-without-resending"},{"title":"List the agent sessions on the caller's Reason Network","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/agent-network/team","href":"/api-reference/agent-network/list-the-agent-sessions-on-the-callers-reason-network"},{"title":"Wake the caller's routine when a message reaches its Reason Network inbox","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/agent-network/wake","href":"/api-reference/agent-network/wake-the-callers-routine-when-a-message-reaches-its-reason-network-inbox"}]},{"group":"Organizations","pages":[{"title":"List organizations","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations","href":"/api-reference/organizations/list-organizations"},{"title":"Create an organization","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations","href":"/api-reference/organizations/create-an-organization"},{"title":"Retrieve an organization","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}","href":"/api-reference/organizations/retrieve-an-organization"},{"title":"Delete an organization","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}","href":"/api-reference/organizations/delete-an-organization"},{"title":"Update an organization","deprecated":null,"version":null,"openapi":"/openapi.json patch /v3/organizations/{orgId}","href":"/api-reference/organizations/update-an-organization"},{"title":"Create a single-use benchmark workspace","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/ephemeral-workspaces","href":"/api-reference/organizations/create-a-single-use-benchmark-workspace"},{"title":"Retire a single-use benchmark workspace","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/ephemeral-workspaces/{workspaceId}/retire","href":"/api-reference/organizations/retire-a-single-use-benchmark-workspace"}]},{"group":"Agent Auth","pages":[{"title":"List Reason models","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/agent-auth/models","href":"/api-reference/agent-auth/list-reason-models"},{"title":"Get Reason inference availability","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/agent-auth/status","href":"/api-reference/agent-auth/get-reason-inference-availability"}]},{"group":"Attachments","pages":[{"title":"List attachments","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/attachments","href":"/api-reference/attachments/list-attachments"},{"title":"Upload an attachment","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/attachments","href":"/api-reference/attachments/upload-an-attachment"},{"title":"Download an attachment","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/attachments/{attachmentId}","href":"/api-reference/attachments/download-an-attachment"},{"title":"Delete an attachment","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/attachments/{attachmentId}","href":"/api-reference/attachments/delete-an-attachment"},{"title":"Download an attachment (named)","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/attachments/{attachmentId}/{filename}","href":"/api-reference/attachments/download-an-attachment-named"}]},{"group":"Audit Logs","pages":[{"title":"List audit log entries","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/audit-logs","href":"/api-reference/audit-logs/list-audit-log-entries"}]},{"group":"Automations","pages":[{"title":"List automations","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/automations","href":"/api-reference/automations/list-automations"},{"title":"Create an automation","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/automations","href":"/api-reference/automations/create-an-automation"},{"title":"Retrieve an automation","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/automations/{automationId}","href":"/api-reference/automations/retrieve-an-automation"},{"title":"Delete an automation","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/automations/{automationId}","href":"/api-reference/automations/delete-an-automation"},{"title":"Update an automation","deprecated":null,"version":null,"openapi":"/openapi.json patch /v3/organizations/{orgId}/automations/{automationId}","href":"/api-reference/automations/update-an-automation"},{"title":"Read the creator-private typed action","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/automations/{automationId}/action","href":"/api-reference/automations/read-the-creator-private-typed-action"},{"title":"Pin an immutable action and schedule revision","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/automations/{automationId}/action","href":"/api-reference/automations/pin-an-immutable-action-and-schedule-revision"},{"title":"Remove the direct configuration and pause future admission","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/automations/{automationId}/action","href":"/api-reference/automations/remove-the-direct-configuration-and-pause-future-admission"},{"title":"List up to 100 direct occurrence statuses","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/automations/{automationId}/executions","href":"/api-reference/automations/list-up-to-100-direct-occurrence-statuses"},{"title":"Observe one direct occurrence","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/automations/{automationId}/executions/{executionId}","href":"/api-reference/automations/observe-one-direct-occurrence"},{"title":"Request cancellation of an admitted occurrence","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/automations/{automationId}/executions/{executionId}/cancel","href":"/api-reference/automations/request-cancellation-of-an-admitted-occurrence"},{"title":"Admit one occurrence now","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/automations/{automationId}/run","href":"/api-reference/automations/admit-one-occurrence-now"},{"title":"List an automation's triggers","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/automations/{automationId}/triggers","href":"/api-reference/automations/list-an-automations-triggers"},{"title":"Add a trigger to an automation","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/automations/{automationId}/triggers","href":"/api-reference/automations/add-a-trigger-to-an-automation"},{"title":"Remove a trigger from an automation","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/automations/{automationId}/triggers/{triggerId}","href":"/api-reference/automations/remove-a-trigger-from-an-automation"}]},{"group":"Capabilities","pages":[{"title":"Discover public operations admitted by this credential's scopes","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/capabilities","href":"/api-reference/capabilities/discover-public-operations-admitted-by-this-credentials-scopes"}]},{"group":"Workspace events","pages":[{"title":"Stream workspace changes","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/changes","href":"/api-reference/workspace-events/stream-workspace-changes"},{"title":"List event webhooks","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/event-webhooks","href":"/api-reference/workspace-events/list-event-webhooks"},{"title":"Register an event webhook","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/event-webhooks","href":"/api-reference/workspace-events/register-an-event-webhook"},{"title":"Get an event webhook","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/event-webhooks/{webhookId}","href":"/api-reference/workspace-events/get-an-event-webhook"},{"title":"Delete an event webhook","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/event-webhooks/{webhookId}","href":"/api-reference/workspace-events/delete-an-event-webhook"},{"title":"Update an event webhook","deprecated":null,"version":null,"openapi":"/openapi.json patch /v3/organizations/{orgId}/event-webhooks/{webhookId}","href":"/api-reference/workspace-events/update-an-event-webhook"},{"title":"Stream workspace events","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/events","href":"/api-reference/workspace-events/stream-workspace-events"}]},{"group":"Cloud Access","pages":[{"title":"Read cloud access","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/cloud-access","href":"/api-reference/cloud-access/read-cloud-access"},{"title":"Create or replace a cloud access connection","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/cloud-access/{provider}","href":"/api-reference/cloud-access/create-or-replace-a-cloud-access-connection"},{"title":"Delete a cloud access connection","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/cloud-access/{provider}","href":"/api-reference/cloud-access/delete-a-cloud-access-connection"},{"title":"Test a cloud access connection","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/cloud-access/{provider}/test","href":"/api-reference/cloud-access/test-a-cloud-access-connection"}]},{"group":"Computers","pages":[{"title":"List workspace computers","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/computers","href":"/api-reference/computers/list-workspace-computers"},{"title":"List a Reason's computers","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/reasons/{reasonId}/computers","href":"/api-reference/computers/list-a-reasons-computers"}]},{"group":"Connections","pages":[{"title":"List service connections and their health","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/connections","href":"/api-reference/connections/list-service-connections-and-their-health"},{"title":"Manage one connection","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/connections/{adapter}/{id}/{action}","href":"/api-reference/connections/manage-one-connection"}]},{"group":"Tools","pages":[{"title":"List a connected account's MCP tools","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/connections/{connectionId}/tools","href":"/api-reference/tools/list-a-connected-accounts-mcp-tools"},{"title":"Describe one connected MCP tool","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/connections/{connectionId}/tools/{toolName}","href":"/api-reference/tools/describe-one-connected-mcp-tool"},{"title":"Invoke a connected MCP tool without a Session","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/tool-invocations","href":"/api-reference/tools/invoke-a-connected-mcp-tool-without-a-session"},{"title":"Read an invocation receipt","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/tool-invocations/{id}","href":"/api-reference/tools/read-an-invocation-receipt"},{"title":"Request cancellation of an invocation","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/tool-invocations/{id}/cancel","href":"/api-reference/tools/request-cancellation-of-an-invocation"}]},{"group":"Consumption","pages":[{"title":"Get daily consumption","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/consumption/daily","href":"/api-reference/consumption/get-daily-consumption"},{"title":"Get usage quota","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/usage/quota","href":"/api-reference/consumption/get-usage-quota"},{"title":"Get usage summary","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/usage/summary","href":"/api-reference/consumption/get-usage-summary"}]},{"group":"Devices","pages":[{"title":"List your Devices","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/devices","href":"/api-reference/devices/list-your-devices"},{"title":"Approve a headless installation","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/devices/enrollment-tickets","href":"/api-reference/devices/approve-a-headless-installation"},{"title":"Enroll a headless installation","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/devices/enrollments","href":"/api-reference/devices/enroll-a-headless-installation"},{"title":"Read your Device","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/devices/{deviceId}","href":"/api-reference/devices/read-your-device"},{"title":"Revoke your Device","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/devices/{deviceId}","href":"/api-reference/devices/revoke-your-device"},{"title":"Rename a Device","deprecated":null,"version":null,"openapi":"/openapi.json patch /v3/organizations/{orgId}/devices/{deviceId}","href":"/api-reference/devices/rename-a-device"},{"title":"Set your Device's direct access","deprecated":null,"version":null,"openapi":"/openapi.json patch /v3/organizations/{orgId}/devices/{deviceId}/direct-access","href":"/api-reference/devices/set-your-devices-direct-access"},{"title":"Add a folder to your computer","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/devices/{deviceId}/roots","href":"/api-reference/devices/add-a-folder-to-your-computer"},{"title":"Remove a folder from your computer","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/devices/{deviceId}/roots/{rootId}","href":"/api-reference/devices/remove-a-folder-from-your-computer"},{"title":"Change an approved root grant","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/devices/{deviceId}/roots/{rootId}/grant","href":"/api-reference/devices/change-an-approved-root-grant"},{"title":"List experimental sandbox targets","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/sandbox-targets","href":"/api-reference/devices/list-experimental-sandbox-targets"},{"title":"Read sandbox readiness","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/sandbox-targets/instances/{instanceId}","href":"/api-reference/devices/read-sandbox-readiness"},{"title":"Stop a sandbox instance","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/sandbox-targets/instances/{instanceId}","href":"/api-reference/devices/stop-a-sandbox-instance"},{"title":"Launch an approved sandbox target","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sandbox-targets/{targetId}/launch","href":"/api-reference/devices/launch-an-approved-sandbox-target"},{"title":"List your SSH connections","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/ssh-connections","href":"/api-reference/devices/list-your-ssh-connections"},{"title":"Add an SSH connection","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/ssh-connections","href":"/api-reference/devices/add-an-ssh-connection"},{"title":"Read your SSH connection","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/ssh-connections/{connectionId}","href":"/api-reference/devices/read-your-ssh-connection"},{"title":"Delete an SSH connection","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/ssh-connections/{connectionId}","href":"/api-reference/devices/delete-an-ssh-connection"},{"title":"Bootstrap a Mac SSH activation","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/ssh-connections/{connectionId}/activate","href":"/api-reference/devices/bootstrap-a-mac-ssh-activation"},{"title":"Connect or reconnect over SSH","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/ssh-connections/{connectionId}/connect","href":"/api-reference/devices/connect-or-reconnect-over-ssh"},{"title":"Replace saved SSH credentials","deprecated":null,"version":null,"openapi":"/openapi.json patch /v3/organizations/{orgId}/ssh-connections/{connectionId}/credentials","href":"/api-reference/devices/replace-saved-ssh-credentials"}]},{"group":"Execution contexts","pages":[{"title":"List contexts owned by this credential","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/execution-contexts","href":"/api-reference/execution-contexts/list-contexts-owned-by-this-credential"},{"title":"Acquire an optional bounded Device/root context","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/execution-contexts","href":"/api-reference/execution-contexts/acquire-an-optional-bounded-deviceroot-context"},{"title":"Inspect a context and measured capabilities","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/execution-contexts/{contextId}","href":"/api-reference/execution-contexts/inspect-a-context-and-measured-capabilities"},{"title":"Close a context and stop renewing its physical resource leases","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/execution-contexts/{contextId}/close","href":"/api-reference/execution-contexts/close-a-context-and-stop-renewing-its-physical-resource-leases"},{"title":"Submit a typed files, command, terminal, browser, preview or artifact operation","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/execution-contexts/{contextId}/operations","href":"/api-reference/execution-contexts/submit-a-typed-files-command-terminal-browser-preview-or-artifact-operation"},{"title":"Renew up to the immutable hard expiry","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/execution-contexts/{contextId}/renew","href":"/api-reference/execution-contexts/renew-up-to-the-immutable-hard-expiry"}]},{"group":"Previews","pages":[{"title":"List private previews in an owned context","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/execution-contexts/{contextId}/previews","href":"/api-reference/previews/list-private-previews-in-an-owned-context"},{"title":"Start an owned private HTTP and WebSocket preview","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/execution-contexts/{contextId}/previews","href":"/api-reference/previews/start-an-owned-private-http-and-websocket-preview"},{"title":"Read private preview state","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/execution-contexts/{contextId}/previews/{previewId}","href":"/api-reference/previews/read-private-preview-state"},{"title":"Open an owned ready private preview","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/execution-contexts/{contextId}/previews/{previewId}/access","href":"/api-reference/previews/open-an-owned-ready-private-preview"},{"title":"Close an owned private preview","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/execution-contexts/{contextId}/previews/{previewId}/close","href":"/api-reference/previews/close-an-owned-private-preview"}]},{"group":"Checkpoint artifacts","pages":[{"title":"Read checkpoint preparation or sealing status","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/execution-contexts/{ownerId}/checkpoints/artifacts/{artifactId}","href":"/api-reference/checkpoint-artifacts/read-checkpoint-preparation-or-sealing-status"},{"title":"Delete a retained checkpoint artifact","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/execution-contexts/{ownerId}/checkpoints/artifacts/{artifactId}","href":"/api-reference/checkpoint-artifacts/delete-a-retained-checkpoint-artifact"},{"title":"Set bounded checkpoint retention","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/execution-contexts/{ownerId}/checkpoints/artifacts/{artifactId}/retention","href":"/api-reference/checkpoint-artifacts/set-bounded-checkpoint-retention"},{"title":"Prepare a private checkpoint chunk","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/execution-contexts/{ownerId}/checkpoints/chunks/prepare","href":"/api-reference/checkpoint-artifacts/prepare-a-private-checkpoint-chunk"},{"title":"Upload exactly the prepared chunk bytes","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/execution-contexts/{ownerId}/checkpoints/chunks/{artifactId}/content","href":"/api-reference/checkpoint-artifacts/upload-exactly-the-prepared-chunk-bytes"},{"title":"Verify and seal immutable checkpoint bytes","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/execution-contexts/{ownerId}/checkpoints/chunks/{artifactId}/seal","href":"/api-reference/checkpoint-artifacts/verify-and-seal-immutable-checkpoint-bytes"},{"title":"Register an ordered immutable checkpoint manifest","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/execution-contexts/{ownerId}/checkpoints/manifests","href":"/api-reference/checkpoint-artifacts/register-an-ordered-immutable-checkpoint-manifest"},{"title":"Read a retained checkpoint and fresh private URLs","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/execution-contexts/{ownerId}/checkpoints/manifests/{artifactId}","href":"/api-reference/checkpoint-artifacts/read-a-retained-checkpoint-and-fresh-private-urls"},{"title":"Read checkpoint preparation or sealing status","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/jobs/{ownerId}/checkpoints/artifacts/{artifactId}","href":"/api-reference/checkpoint-artifacts/read-checkpoint-preparation-or-sealing-status-1"},{"title":"Delete a retained checkpoint artifact","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/jobs/{ownerId}/checkpoints/artifacts/{artifactId}","href":"/api-reference/checkpoint-artifacts/delete-a-retained-checkpoint-artifact-1"},{"title":"Set bounded checkpoint retention","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/jobs/{ownerId}/checkpoints/artifacts/{artifactId}/retention","href":"/api-reference/checkpoint-artifacts/set-bounded-checkpoint-retention-1"},{"title":"Prepare a private checkpoint chunk","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/jobs/{ownerId}/checkpoints/chunks/prepare","href":"/api-reference/checkpoint-artifacts/prepare-a-private-checkpoint-chunk-1"},{"title":"Upload exactly the prepared chunk bytes","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/jobs/{ownerId}/checkpoints/chunks/{artifactId}/content","href":"/api-reference/checkpoint-artifacts/upload-exactly-the-prepared-chunk-bytes-1"},{"title":"Verify and seal immutable checkpoint bytes","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/jobs/{ownerId}/checkpoints/chunks/{artifactId}/seal","href":"/api-reference/checkpoint-artifacts/verify-and-seal-immutable-checkpoint-bytes-1"},{"title":"Register an ordered immutable checkpoint manifest","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/jobs/{ownerId}/checkpoints/manifests","href":"/api-reference/checkpoint-artifacts/register-an-ordered-immutable-checkpoint-manifest-1"},{"title":"Read a retained checkpoint and fresh private URLs","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/jobs/{ownerId}/checkpoints/manifests/{artifactId}","href":"/api-reference/checkpoint-artifacts/read-a-retained-checkpoint-and-fresh-private-urls-1"}]},{"group":"Git Connections","pages":[{"title":"List git connections (deprecated)","deprecated":true,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/git-connections","href":"/api-reference/git-connections/list-git-connections-deprecated"},{"title":"List repositories for a git connection (deprecated)","deprecated":true,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/git-connections/{gitConnectionId}/repositories","href":"/api-reference/git-connections/list-repositories-for-a-git-connection-deprecated"}]},{"group":"Git Plugins","pages":[{"title":"List git plugins","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/git-plugins","href":"/api-reference/git-plugins/list-git-plugins"},{"title":"List repositories for a git plugin","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/git-plugins/{gitPluginId}/repositories","href":"/api-reference/git-plugins/list-repositories-for-a-git-plugin"}]},{"group":"Repositories","pages":[{"title":"List indexed repositories (retired)","deprecated":true,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/indexed-repositories","href":"/api-reference/repositories/list-indexed-repositories-retired"},{"title":"List repositories","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/repositories","href":"/api-reference/repositories/list-repositories"},{"title":"Bulk enable repositories","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/repositories/bulk-index","href":"/api-reference/repositories/bulk-enable-repositories"},{"title":"Bulk remove repositories","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/repositories/bulk-remove","href":"/api-reference/repositories/bulk-remove-repositories"},{"title":"Disconnect a repository","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/repositories/{owner}/{repo}","href":"/api-reference/repositories/disconnect-a-repository"},{"title":"Get a branch's head commit","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/repositories/{owner}/{repo}/branch-head","href":"/api-reference/repositories/get-a-branchs-head-commit"},{"title":"Delete a repository branch (retired)","deprecated":true,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/repositories/{owner}/{repo}/branches/{branch}","href":"/api-reference/repositories/delete-a-repository-branch-retired"},{"title":"Get repository guardrails","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/repositories/{owner}/{repo}/guardrails","href":"/api-reference/repositories/get-repository-guardrails"},{"title":"Update repository guardrails","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/repositories/{owner}/{repo}/guardrails","href":"/api-reference/repositories/update-repository-guardrails"},{"title":"Enable a repository","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/repositories/{owner}/{repo}/index","href":"/api-reference/repositories/enable-a-repository"},{"title":"Get indexing status (retired)","deprecated":true,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/repositories/{owner}/{repo}/indexing-status","href":"/api-reference/repositories/get-indexing-status-retired"},{"title":"Get repository wiki (retired)","deprecated":true,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/repositories/{owner}/{repo}/wiki","href":"/api-reference/repositories/get-repository-wiki-retired"},{"title":"Export repository wiki (retired)","deprecated":true,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/repositories/{owner}/{repo}/wiki/export","href":"/api-reference/repositories/export-repository-wiki-retired"}]},{"group":"Sessions","pages":[{"title":"List pending input requests","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/input-requests","href":"/api-reference/sessions/list-pending-input-requests"},{"title":"List sessions","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/sessions","href":"/api-reference/sessions/list-sessions"},{"title":"Create a session","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions","href":"/api-reference/sessions/create-a-session"},{"title":"List sessions with insights","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/sessions/insights","href":"/api-reference/sessions/list-sessions-with-insights"},{"title":"Start a new session's machine ahead of its create","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/prestart","href":"/api-reference/sessions/start-a-new-sessions-machine-ahead-of-its-create"},{"title":"Retrieve a session","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/sessions/{sessionId}","href":"/api-reference/sessions/retrieve-a-session"},{"title":"Delete a session","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/sessions/{sessionId}","href":"/api-reference/sessions/delete-a-session"},{"title":"Archive a session","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/archive","href":"/api-reference/sessions/archive-a-session"},{"title":"List attachments","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/sessions/{sessionId}/attachments","href":"/api-reference/sessions/list-attachments"},{"title":"Download an attachment","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/sessions/{sessionId}/attachments/{attachmentId}","href":"/api-reference/sessions/download-an-attachment"},{"title":"Cancel a session","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/cancel","href":"/api-reference/sessions/cancel-a-session"},{"title":"Compact a session's context","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/compact","href":"/api-reference/sessions/compact-a-sessions-context"},{"title":"List the conversation","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/sessions/{sessionId}/conversation","href":"/api-reference/sessions/list-the-conversation"},{"title":"List live session events","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/sessions/{sessionId}/events","href":"/api-reference/sessions/list-live-session-events"},{"title":"Read session follow-through","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/sessions/{sessionId}/follow-ups","href":"/api-reference/sessions/read-session-follow-through"},{"title":"Schedule a session check-in","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/follow-ups","href":"/api-reference/sessions/schedule-a-session-check-in"},{"title":"Cancel a session check-in","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/sessions/{sessionId}/follow-ups/{followupId}","href":"/api-reference/sessions/cancel-a-session-check-in"},{"title":"Fork a session","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/fork","href":"/api-reference/sessions/fork-a-session"},{"title":"List a session's pending input requests","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/sessions/{sessionId}/input-requests","href":"/api-reference/sessions/list-a-sessions-pending-input-requests"},{"title":"Get an input request","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/sessions/{sessionId}/input-requests/{requestId}","href":"/api-reference/sessions/get-an-input-request"},{"title":"Answer a question","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/input-requests/{requestId}/answer","href":"/api-reference/sessions/answer-a-question"},{"title":"Approve a network or permission request","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/input-requests/{requestId}/approve","href":"/api-reference/sessions/approve-a-network-or-permission-request"},{"title":"Decline a secret request","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/input-requests/{requestId}/cancel","href":"/api-reference/sessions/decline-a-secret-request"},{"title":"Decline a network or permission request","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/input-requests/{requestId}/deny","href":"/api-reference/sessions/decline-a-network-or-permission-request"},{"title":"Provide a secret request's value","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/input-requests/{requestId}/secret","href":"/api-reference/sessions/provide-a-secret-requests-value"},{"title":"Get session insights","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/sessions/{sessionId}/insights","href":"/api-reference/sessions/get-session-insights"},{"title":"Generate session insights","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/insights/generate","href":"/api-reference/sessions/generate-session-insights"},{"title":"List messages","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/sessions/{sessionId}/messages","href":"/api-reference/sessions/list-messages"},{"title":"Send a message","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/messages","href":"/api-reference/sessions/send-a-message"},{"title":"Withdraw a queued message","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/sessions/{sessionId}/messages/{messageId}/queued","href":"/api-reference/sessions/withdraw-a-queued-message"},{"title":"Send a queued message now","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/messages/{messageId}/steer","href":"/api-reference/sessions/send-a-queued-message-now"},{"title":"Move a session to a project","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/project","href":"/api-reference/sessions/move-a-session-to-a-project"},{"title":"Rename a session","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/rename","href":"/api-reference/sessions/rename-a-session"},{"title":"Retry a session's last turn","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/retry","href":"/api-reference/sessions/retry-a-sessions-last-turn"},{"title":"Edit a message and rewind","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/rewind","href":"/api-reference/sessions/edit-a-message-and-rewind"},{"title":"List shared links","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/sessions/{sessionId}/shared-links","href":"/api-reference/sessions/list-shared-links"},{"title":"Share a link with the agent","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/shared-links","href":"/api-reference/sessions/share-a-link-with-the-agent"},{"title":"Revoke a shared link","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/sessions/{sessionId}/shared-links/{linkId}","href":"/api-reference/sessions/revoke-a-shared-link"},{"title":"List session tags","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/sessions/{sessionId}/tags","href":"/api-reference/sessions/list-session-tags"},{"title":"Replace session tags","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/sessions/{sessionId}/tags","href":"/api-reference/sessions/replace-session-tags"},{"title":"Append session tags","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/tags","href":"/api-reference/sessions/append-session-tags"},{"title":"Replace session tags","deprecated":null,"version":null,"openapi":"/openapi.json patch /v3/organizations/{orgId}/sessions/{sessionId}/tags","href":"/api-reference/sessions/replace-session-tags-1"},{"title":"Export session trajectory","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/sessions/{sessionId}/trajectory","href":"/api-reference/sessions/export-session-trajectory"},{"title":"Restore a session","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/sessions/{sessionId}/unarchive","href":"/api-reference/sessions/restore-a-session"}]},{"group":"Jobs","pages":[{"title":"List jobs owned by this credential","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/jobs","href":"/api-reference/jobs/list-jobs-owned-by-this-credential"},{"title":"Submit deterministic work on a granted Device","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/jobs","href":"/api-reference/jobs/submit-deterministic-work-on-a-granted-device"},{"title":"Read job status","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/jobs/{jobId}","href":"/api-reference/jobs/read-job-status"},{"title":"Cancel work; cleanup is reported separately","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/jobs/{jobId}/cancel","href":"/api-reference/jobs/cancel-work;-cleanup-is-reported-separately"},{"title":"Inspect a job's delegated grants","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/jobs/{jobId}/delegations","href":"/api-reference/jobs/inspect-a-jobs-delegated-grants"},{"title":"Revoke a job's delegated grant","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/jobs/{jobId}/delegations/{grantId}","href":"/api-reference/jobs/revoke-a-jobs-delegated-grant"},{"title":"Read bounded resumable job lifecycle events","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/jobs/{jobId}/events","href":"/api-reference/jobs/read-bounded-resumable-job-lifecycle-events"},{"title":"Read bounded owner-private output","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/jobs/{jobId}/result","href":"/api-reference/jobs/read-bounded-owner-private-output"},{"title":"Observe a job without restarting it","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/jobs/{jobId}/wait","href":"/api-reference/jobs/observe-a-job-without-restarting-it"}]},{"group":"MCP Servers","pages":[{"title":"List MCP servers","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/mcp-servers","href":"/api-reference/mcp-servers/list-mcp-servers"},{"title":"Create an MCP server","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/mcp-servers","href":"/api-reference/mcp-servers/create-an-mcp-server"},{"title":"Retrieve an MCP server","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/mcp-servers/{id}","href":"/api-reference/mcp-servers/retrieve-an-mcp-server"},{"title":"Delete an MCP server","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/mcp-servers/{id}","href":"/api-reference/mcp-servers/delete-an-mcp-server"},{"title":"Update an MCP server","deprecated":null,"version":null,"openapi":"/openapi.json patch /v3/organizations/{orgId}/mcp-servers/{id}","href":"/api-reference/mcp-servers/update-an-mcp-server"},{"title":"Import a local MCP OAuth credential","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/mcp-servers/{id}/oauth-import","href":"/api-reference/mcp-servers/import-a-local-mcp-oauth-credential"}]},{"group":"Members","pages":[{"title":"List members","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/members/users","href":"/api-reference/members/list-members"},{"title":"Invite a member","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/members/users","href":"/api-reference/members/invite-a-member"},{"title":"Get a member","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/members/users/{userId}","href":"/api-reference/members/get-a-member"},{"title":"Remove a member","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/members/users/{userId}","href":"/api-reference/members/remove-a-member"},{"title":"Set a member's role","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/members/users/{userId}/role","href":"/api-reference/members/set-a-members-role"}]},{"group":"Memory","pages":[{"title":"Read a memory file","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/memory/file","href":"/api-reference/memory/read-a-memory-file"},{"title":"Write a memory file","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/memory/file","href":"/api-reference/memory/write-a-memory-file"},{"title":"Delete a memory file","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/memory/file","href":"/api-reference/memory/delete-a-memory-file"},{"title":"List memory files","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/memory/files","href":"/api-reference/memory/list-memory-files"},{"title":"List memory history","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/memory/history","href":"/api-reference/memory/list-memory-history"},{"title":"Restore a memory revision","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/memory/restore","href":"/api-reference/memory/restore-a-memory-revision"},{"title":"Search memory","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/memory/search","href":"/api-reference/memory/search-memory"}]},{"group":"Metrics","pages":[{"title":"Get usage metrics","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/metrics/usage","href":"/api-reference/metrics/get-usage-metrics"},{"title":"Get queue status","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/queue","href":"/api-reference/metrics/get-queue-status"}]},{"group":"Network policy","pages":[{"title":"Retrieve workspace network policy","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/network-policy","href":"/api-reference/network-policy/retrieve-workspace-network-policy"},{"title":"Replace workspace network policy","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/network-policy","href":"/api-reference/network-policy/replace-workspace-network-policy"}]},{"group":"Onboarding","pages":[{"title":"Mark an approved local secret import complete","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/onboarding/import/complete","href":"/api-reference/onboarding/mark-an-approved-local-secret-import-complete"},{"title":"Poll the browser's local secret import decision","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/onboarding/import/decision","href":"/api-reference/onboarding/poll-the-browsers-local-secret-import-decision"},{"title":"Attach an existing CLI grant to a browser pairing","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/onboarding/import/pairing/claim-existing","href":"/api-reference/onboarding/attach-an-existing-cli-grant-to-a-browser-pairing"},{"title":"Report that a paired local scan could not finish","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/onboarding/import/pairing/failure","href":"/api-reference/onboarding/report-that-a-paired-local-scan-could-not-finish"},{"title":"Create a local onboarding import handoff","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/onboarding/import/summary","href":"/api-reference/onboarding/create-a-local-onboarding-import-handoff"}]},{"group":"Pages","pages":[{"title":"List pages","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/pages","href":"/api-reference/pages/list-pages"},{"title":"Create a page","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/pages","href":"/api-reference/pages/create-a-page"},{"title":"Retrieve a page","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/pages/{pageId}","href":"/api-reference/pages/retrieve-a-page"},{"title":"Delete a page","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/pages/{pageId}","href":"/api-reference/pages/delete-a-page"},{"title":"Update a page","deprecated":null,"version":null,"openapi":"/openapi.json patch /v3/organizations/{orgId}/pages/{pageId}","href":"/api-reference/pages/update-a-page"},{"title":"Share a page","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/pages/{pageId}/share","href":"/api-reference/pages/share-a-page"}]},{"group":"Change Request Reviews","pages":[{"title":"List change request reviews","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/pr-reviews","href":"/api-reference/change-request-reviews/list-change-request-reviews"},{"title":"Request a change request review","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/pr-reviews","href":"/api-reference/change-request-reviews/request-a-change-request-review"}]},{"group":"Projects","pages":[{"title":"List projects","deprecated":true,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/projects","href":"/api-reference/projects/list-projects"},{"title":"Create project","deprecated":true,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/projects","href":"/api-reference/projects/create-project"},{"title":"Retrieve a project","deprecated":true,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/projects/{projectId}","href":"/api-reference/projects/retrieve-a-project"},{"title":"Update a project","deprecated":true,"version":null,"openapi":"/openapi.json patch /v3/organizations/{orgId}/projects/{projectId}","href":"/api-reference/projects/update-a-project"},{"title":"Archive a project","deprecated":true,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/projects/{projectId}/archive","href":"/api-reference/projects/archive-a-project"},{"title":"Restore a project","deprecated":true,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/projects/{projectId}/unarchive","href":"/api-reference/projects/restore-a-project"}]},{"group":"Provider credentials","pages":[{"title":"List provider credentials","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/provider-credentials","href":"/api-reference/provider-credentials/list-provider-credentials"},{"title":"Connect an Anthropic subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/provider-credentials/anthropic","href":"/api-reference/provider-credentials/connect-an-anthropic-subscription"},{"title":"List available providers","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/provider-credentials/catalog","href":"/api-reference/provider-credentials/list-available-providers"},{"title":"Discover pending provider sign-ins","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/provider-credentials/oauth/logins","href":"/api-reference/provider-credentials/discover-pending-provider-sign-ins"},{"title":"Read provider sign-in","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/provider-credentials/oauth/logins/{loginId}","href":"/api-reference/provider-credentials/read-provider-sign-in"},{"title":"Cancel provider sign-in","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/provider-credentials/oauth/logins/{loginId}","href":"/api-reference/provider-credentials/cancel-provider-sign-in"},{"title":"Answer provider sign-in prompt","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/provider-credentials/oauth/logins/{loginId}/respond","href":"/api-reference/provider-credentials/answer-provider-sign-in-prompt"},{"title":"Configure a provider credential","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/provider-credentials/{providerId}","href":"/api-reference/provider-credentials/configure-a-provider-credential"},{"title":"Delete a provider credential","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/provider-credentials/{providerId}","href":"/api-reference/provider-credentials/delete-a-provider-credential"},{"title":"Rename a provider account","deprecated":null,"version":null,"openapi":"/openapi.json patch /v3/organizations/{orgId}/provider-credentials/{providerId}/accounts/{accountKey}","href":"/api-reference/provider-credentials/rename-a-provider-account"},{"title":"Check a saved provider account","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/provider-credentials/{providerId}/accounts/{accountKey}/check","href":"/api-reference/provider-credentials/check-a-saved-provider-account"},{"title":"Read saved provider account usage","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/provider-credentials/{providerId}/accounts/{accountKey}/usage","href":"/api-reference/provider-credentials/read-saved-provider-account-usage"},{"title":"Start or recover provider sign-in","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/provider-credentials/{providerId}/oauth/login-requests","href":"/api-reference/provider-credentials/start-or-recover-provider-sign-in"},{"title":"Start provider sign-in","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/provider-credentials/{providerId}/oauth/logins","href":"/api-reference/provider-credentials/start-provider-sign-in"},{"title":"Validate a provider API key","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/provider-credentials/{providerId}/validate","href":"/api-reference/provider-credentials/validate-a-provider-api-key"}]},{"group":"Reasons","pages":[{"title":"List Reasons","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/reasons","href":"/api-reference/reasons/list-reasons"},{"title":"Create a Reason","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/reasons","href":"/api-reference/reasons/create-a-reason"},{"title":"Get a Reason","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/reasons/{reasonId}","href":"/api-reference/reasons/get-a-reason"},{"title":"Delete a Reason","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/reasons/{reasonId}","href":"/api-reference/reasons/delete-a-reason"},{"title":"Update a Reason","deprecated":null,"version":null,"openapi":"/openapi.json patch /v3/organizations/{orgId}/reasons/{reasonId}","href":"/api-reference/reasons/update-a-reason"},{"title":"Archive a Reason","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/reasons/{reasonId}/archive","href":"/api-reference/reasons/archive-a-reason"},{"title":"Create a cloud computer for a Reason","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/reasons/{reasonId}/computers","href":"/api-reference/reasons/create-a-cloud-computer-for-a-reason"},{"title":"Delete a Reason's cloud computer","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/reasons/{reasonId}/computers/{computerId}","href":"/api-reference/reasons/delete-a-reasons-cloud-computer"},{"title":"Open a Reason's conversation","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/reasons/{reasonId}/conversation","href":"/api-reference/reasons/open-a-reasons-conversation"},{"title":"List a Reason's messages","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/reasons/{reasonId}/messages","href":"/api-reference/reasons/list-a-reasons-messages"},{"title":"Message a Reason","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/reasons/{reasonId}/messages","href":"/api-reference/reasons/message-a-reason"}]},{"group":"Loops","pages":[{"title":"List a Reason's Loops","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/reasons/{reasonId}/loops","href":"/api-reference/loops/list-a-reasons-loops"},{"title":"Create a Loop","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/reasons/{reasonId}/loops","href":"/api-reference/loops/create-a-loop"},{"title":"Retrieve a Loop","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/reasons/{reasonId}/loops/{loopId}","href":"/api-reference/loops/retrieve-a-loop"},{"title":"Delete a Loop","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/reasons/{reasonId}/loops/{loopId}","href":"/api-reference/loops/delete-a-loop"},{"title":"Update a Loop","deprecated":null,"version":null,"openapi":"/openapi.json patch /v3/organizations/{orgId}/reasons/{reasonId}/loops/{loopId}","href":"/api-reference/loops/update-a-loop"},{"title":"Run a Loop now","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/reasons/{reasonId}/loops/{loopId}/run","href":"/api-reference/loops/run-a-loop-now"},{"title":"Send an event to a Loop","deprecated":null,"version":null,"openapi":"/openapi.json post /webhooks/automations/{publicToken}","href":"/api-reference/loops/send-an-event-to-a-loop"},{"title":"Send an event to a Loop (key in the URL)","deprecated":null,"version":null,"openapi":"/openapi.json post /webhooks/automations/{publicToken}/{key}","href":"/api-reference/loops/send-an-event-to-a-loop-key-in-the-url"}]},{"group":"Roles","pages":[{"title":"List role assignments (retired)","deprecated":true,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/roles","href":"/api-reference/roles/list-role-assignments-retired"},{"title":"Set a role assignment (retired)","deprecated":true,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/roles","href":"/api-reference/roles/set-a-role-assignment-retired"},{"title":"Get the caller's roles","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/roles/me","href":"/api-reference/roles/get-the-callers-roles"},{"title":"Get a role assignment (retired)","deprecated":true,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/roles/{userId}","href":"/api-reference/roles/get-a-role-assignment-retired"}]},{"group":"Secrets","pages":[{"title":"List secret names","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/secrets","href":"/api-reference/secrets/list-secret-names"},{"title":"Create or update a secret","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/secrets","href":"/api-reference/secrets/create-or-update-a-secret"},{"title":"Create or update workspace secrets in a batch","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/secrets/bulk","href":"/api-reference/secrets/create-or-update-workspace-secrets-in-a-batch"},{"title":"Delete a secret","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/secrets/{secretId}","href":"/api-reference/secrets/delete-a-secret"}]},{"group":"Settings","pages":[{"title":"List organization settings","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/settings","href":"/api-reference/settings/list-organization-settings"},{"title":"Get a settings namespace","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/settings/{namespace}","href":"/api-reference/settings/get-a-settings-namespace"},{"title":"Update a settings namespace","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/settings/{namespace}","href":"/api-reference/settings/update-a-settings-namespace"}]},{"group":"Skills","pages":[{"title":"List skills","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/skills","href":"/api-reference/skills/list-skills"},{"title":"Create a skill","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/skills","href":"/api-reference/skills/create-a-skill"},{"title":"Retrieve a skill","deprecated":null,"version":null,"openapi":"/openapi.json get /v3/organizations/{orgId}/skills/{skillId}","href":"/api-reference/skills/retrieve-a-skill"},{"title":"Update a skill","deprecated":null,"version":null,"openapi":"/openapi.json put /v3/organizations/{orgId}/skills/{skillId}","href":"/api-reference/skills/update-a-skill"},{"title":"Delete a skill","deprecated":null,"version":null,"openapi":"/openapi.json delete /v3/organizations/{orgId}/skills/{skillId}","href":"/api-reference/skills/delete-a-skill"}]},{"group":"Transcription","pages":[{"title":"Transcribe a recording","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/transcribe","href":"/api-reference/transcription/transcribe-a-recording"}]},{"group":"Direct web","pages":[{"title":"Fetch public web content","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/web/fetch","href":"/api-reference/direct-web/fetch-public-web-content"},{"title":"Search the public web","deprecated":null,"version":null,"openapi":"/openapi.json post /v3/organizations/{orgId}/web/search","href":"/api-reference/direct-web/search-the-public-web"}]}]}]}]},"basePath":"","title":"Verify credentials - Reason Documentation","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CBsVopKK.js","utils-DZAk68jJ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D32AYZrP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D_A5_cny.js","snippetPresets-xNRfS9th.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BIB25-tq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CydJ4w4j.js","shallow-CYPBeQSG.js","getApiPlaygroundDisplay-A5xJVBOu.js","CodeSnippet-BVRTgi3m.js","CodeSnippets-DjD6BSlt.js","Page-Dr40SSJq.js","getPastedJson-D4V4JyrR.js","icon-uhcnG22T.js","MethodPill-CM-ZQdGH.js","DuplicateIcon-B_WnOiNf.js","createIcon-CJsb8utt.js","DynamicMarkdown-D-2HDKEp.js","SectionHeading-KP5xmMgQ.js","axios-vUo_bRtp.js","Markdown-D_k0dg6k.js","clsx-DK3K4Z1S.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DE3EVdvd.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-fN9H9n9g.js"]}