Manage the agents connected through browser sign-in and the API keys your scripts use, and see what each one can reach in your organization.
An agent reaches your CanvasView organization in one of two ways. Both are managed on the API keys page.
Connected agents sign in through your browser. Claude Code and Codex connect this way. See Connect your agent.
Manual API keys are for scripts, headless agents and MCP clients that cannot sign in through a browser.
Everything an agent does is billed to the organization’s credits.
Who manages what
Every key and connected agent belongs to the person who created it.
Members see, create, revoke and reconnect their own keys and connected agents.
Admins see and manage everyone’s. Each key someone else created shows that person’s email.
An agent acts for the person who created its key or connected it, with that person’s role:
The canvases it creates are owned by that person.
A Member’s agent sees the canvases that Member can see: their own, and those shared with the organization. An Admin’s agent sees every canvas in the organization.
Events follow the same rule. A Member’s agent gets events only for canvases that Member can see.
A connected agent appears under Connected agents after you approve it in your browser. Claude Code and Codex are shown by name. Each person who connects an agent gets their own connection.A connected agent works in your default organization: the first organization you used CanvasView in. If you leave that organization, it moves to another one you belong to. To work in a different organization from a script or agent, create a manual API key while that organization is the one shown in the account menu.To disconnect an agent:
Select Disconnect next to it.
Select Disconnect now to confirm.
The agent loses access at once. Signing in again from the agent does not restore it. To let it back in, select Reconnect.
Manual API keys
A manual key belongs to the organization you are working in when you create it.To create a key:
Under Manual API keys, enter a Key name that says where you will use it.
Select Create key.
Copy the key. It starts with cvk_ and is shown only once.
Send the key as a bearer token:
Authorization: Bearer cvk_your_key_here
The list shows each key’s name, a short prefix to recognise it by, and whether it is Active or Revoked. An organization can have up to 50 active manual keys.To revoke a key, select Revoke, then Revoke now. Anything using the key stops working at once. A revoked key cannot be restored. Create a new key instead.
Treat a key like a password. Keep it out of source control and chat. If a key leaks, revoke it and create a new one.
When someone leaves the organization or is removed, the keys and connected agents they created there are revoked. See Organizations and members.
Cap a key’s spending
Admins see a Daily cap (USD) field on each active key and connected agent. Enter an amount and select Save key cap to limit what that key or agent spends each day. Leave the field empty for no key cap. The organization’s daily cap applies as well. See Credits and billing.
Troubleshooting
Symptom
Cause
unauthorized: “Use an active CanvasView API key.”
The key was revoked or mistyped, or its creator left the organization.
connection_revoked: “This MCP client was disconnected in CanvasView.”
The connected agent was disconnected. Select Reconnect on the API keys page.
key_limit when creating a key
The organization has 50 active manual keys. Revoke an unused one first.
canvas_not_found for a canvas you know exists
The key’s person cannot see it. A Member’s key cannot see another member’s private canvas.
rate_limit
The agent sent requests too quickly. Wait a second and retry.
membership_unavailable
CanvasView could not confirm that the key’s creator is still a member. Try again in a moment.
account_pending
The account is waiting for review. Only examples, skills, the kit reference, validation and the balance work until it is approved.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"CanvasView","colors":{"primary":"#B63517","light":"#FF876A","dark":"#A82703"},"logo":{"light":"https://mintcdn.com/canvasview/INxxnU_mQyk4Vboo/logo/light.svg?fit=max\u0026auto=format\u0026n=INxxnU_mQyk4Vboo\u0026q=85\u0026s=e3206ec4bcec031acbb8d001964d7d64","dark":"https://mintcdn.com/canvasview/INxxnU_mQyk4Vboo/logo/dark.svg?fit=max\u0026auto=format\u0026n=INxxnU_mQyk4Vboo\u0026q=85\u0026s=7459ef337f32c6a909570846b8d5da41","href":"https://canvasview.dev"},"favicon":"https://mintcdn.com/canvasview/INxxnU_mQyk4Vboo/favicon.svg?fit=max\u0026auto=format\u0026n=INxxnU_mQyk4Vboo\u0026q=85\u0026s=35dcb0fdf05f7d692b3bb2ddfbd8617b","background":{"color":{"light":"#F4F1E9","dark":"#060606"}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"canvasview","hasAudioNarration":false,"actualSubdomain":"canvasview","customDomains":["docs.canvasview.dev"],"gitSource":{"type":"github","owner":"intentionalitysoftware","repo":"canvasview-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","_id":"6aefa2aa3f4d3ae64d594828"},"entitlements":{},"buildId":"6af7ccbb480f6263aec6b0b7","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"Your account","count":7},{"language":"default","tag":"For developers","count":3},{"language":"default","tag":"Working with people","count":3},{"language":"default","tag":"Start","count":2},{"language":"default","tag":"Trust","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","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":"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":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"account/keys-and-agents","slug":"/account/keys-and-agents","pageMetadata":{"title":"Keys and connected agents","description":"Manage the agents connected through browser sign-in and the API keys your scripts use, and see what each one can reach in your organization.","href":"/account/keys-and-agents"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Manage the agents connected through browser sign-in and the API keys your scripts use, and see what each one can reach in your organization.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`An agent reaches your CanvasView organization in one of two ways. Both are managed on the `,_jsx(_components.a,{href:`https://app.canvasview.dev/settings/keys`,children:`API keys`}),` page.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Connected agents`}),` sign in through your browser. Claude Code and Codex connect this way. See `,_jsx(_components.a,{href:`/`,children:`Connect your agent`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Manual API keys`}),` are for scripts, headless agents and MCP clients that cannot sign in through a browser.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Everything an agent does is billed to the organization’s credits.`}),`\n`,_jsx(Heading,{level:`2`,id:`who-manages-what`,children:`Who manages what`}),`\n`,_jsx(_components.p,{children:`Every key and connected agent belongs to the person who created it.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Members`}),` see, create, revoke and reconnect their own keys and connected agents.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Admins`}),` see and manage everyone’s. Each key someone else created shows that person’s email.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`An agent acts for the person who created its key or connected it, with that person’s role:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The canvases it creates are owned by that person.`}),`\n`,_jsx(_components.li,{children:`A Member’s agent sees the canvases that Member can see: their own, and those shared with the organization. An Admin’s agent sees every canvas in the organization.`}),`\n`,_jsx(_components.li,{children:`Events follow the same rule. A Member’s agent gets events only for canvases that Member can see.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/account/sharing-and-access#owner-and-visibility`,children:`Sharing and access`}),` and `,_jsx(_components.a,{href:`/account/organizations-and-members#roles`,children:`Organizations and members`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`connected-agents`,children:`Connected agents`}),`\n`,_jsxs(_components.p,{children:[`A connected agent appears under `,_jsx(_components.strong,{children:`Connected agents`}),` after you approve it in your browser. Claude Code and Codex are shown by name. Each person who connects an agent gets their own connection.`]}),`\n`,_jsx(_components.p,{children:`A connected agent works in your default organization: the first organization you used CanvasView in. If you leave that organization, it moves to another one you belong to. To work in a different organization from a script or agent, create a manual API key while that organization is the one shown in the account menu.`}),`\n`,_jsx(_components.p,{children:`To disconnect an agent:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Disconnect`}),` next to it.`]}),`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Disconnect now`}),` to confirm.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The agent loses access at once. Signing in again from the agent does not restore it. To let it back in, select `,_jsx(_components.strong,{children:`Reconnect`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`manual-api-keys`,children:`Manual API keys`}),`\n`,_jsx(_components.p,{children:`A manual key belongs to the organization you are working in when you create it.`}),`\n`,_jsx(_components.p,{children:`To create a key:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Under `,_jsx(_components.strong,{children:`Manual API keys`}),`, enter a `,_jsx(_components.strong,{children:`Key name`}),` that says where you will use it.`]}),`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Create key`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Copy the key. It starts with `,_jsx(_components.code,{children:`cvk_`}),` and is shown only once.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Send the key as a bearer token:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`http`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`http`,children:_jsxs(_components.code,{language:`http`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`Authorization`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Bearer cvk_your_key_here`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The list shows each key’s name, a short prefix to recognise it by, and whether it is `,_jsx(_components.strong,{children:`Active`}),` or `,_jsx(_components.strong,{children:`Revoked`}),`. An organization can have up to 50 active manual keys.`]}),`\n`,_jsxs(_components.p,{children:[`To revoke a key, select `,_jsx(_components.strong,{children:`Revoke`}),`, then `,_jsx(_components.strong,{children:`Revoke now`}),`. Anything using the key stops working at once. A revoked key cannot be restored. Create a new key instead.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Treat a key like a password. Keep it out of source control and chat. If a key leaks, revoke it and create a new one.`})}),`\n`,_jsxs(_components.p,{children:[`When someone leaves the organization or is removed, the keys and connected agents they created there are revoked. See `,_jsx(_components.a,{href:`/account/organizations-and-members#when-someone-leaves-or-is-removed`,children:`Organizations and members`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`cap-a-key’s-spending`,children:`Cap a key’s spending`}),`\n`,_jsxs(_components.p,{children:[`Admins see a `,_jsx(_components.strong,{children:`Daily cap (USD)`}),` field on each active key and connected agent. Enter an amount and select `,_jsx(_components.strong,{children:`Save key cap`}),` to limit what that key or agent spends each day. Leave the field empty for no key cap. The organization’s daily cap applies as well. See `,_jsx(_components.a,{href:`/account/credits-and-billing`,children:`Credits and billing`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Symptom`}),_jsx(_components.th,{children:`Cause`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`unauthorized`}),`: “Use an active CanvasView API key.”`]}),_jsx(_components.td,{children:`The key was revoked or mistyped, or its creator left the organization.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`connection_revoked`}),`: “This MCP client was disconnected in CanvasView.”`]}),_jsxs(_components.td,{children:[`The connected agent was disconnected. Select `,_jsx(_components.strong,{children:`Reconnect`}),` on the API keys page.`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`key_limit`}),` when creating a key`]}),_jsx(_components.td,{children:`The organization has 50 active manual keys. Revoke an unused one first.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`canvas_not_found`}),` for a canvas you know exists`]}),_jsx(_components.td,{children:`The key’s person cannot see it. A Member’s key cannot see another member’s private canvas.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`rate_limit`})}),_jsx(_components.td,{children:`The agent sent requests too quickly. Wait a second and retry.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`membership_unavailable`})}),_jsx(_components.td,{children:`CanvasView could not confirm that the key’s creator is still a member. Try again in a moment.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`account_pending`})}),_jsx(_components.td,{children:`The account is waiting for review. Only examples, skills, the kit reference, validation and the balance work until it is approved.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`account_declined`})}),_jsxs(_components.td,{children:[`The account was not approved. Contact `,_jsx(_components.a,{href:`mailto:support@canvasview.dev`,children:`support@canvasview.dev`}),`.`]})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Keys and connected agents","description":"Manage the agents connected through browser sign-in and the API keys your scripts use, and see what each one can reach in your organization.","href":"/account/keys-and-agents"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Who manages what","slug":"who-manages-what","depth":2,"children":[]},{"title":"Connected agents","slug":"connected-agents","depth":2,"children":[]},{"title":"Manual API keys","slug":"manual-api-keys","depth":2,"children":[]},{"title":"Cap a key’s spending","slug":"cap-a-key’s-spending","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"canvasview","siteName":"CanvasView","title":"Keys and connected agents - CanvasView","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-13T00:20:43.048Z","originalFileLocation":"account/keys-and-agents.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=\"Manage the agents connected through browser sign-in and the API keys your scripts use, and see what each one can reach in your organization.\">\u003cmeta data-mint-head name=\"application-name\" content=\"CanvasView\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/canvasview/VeDJraeOI-vEtXbK/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/canvasview/VeDJraeOI-vEtXbK/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/canvasview/VeDJraeOI-vEtXbK/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/canvasview/VeDJraeOI-vEtXbK/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/canvasview/VeDJraeOI-vEtXbK/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/canvasview/VeDJraeOI-vEtXbK/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/canvasview/VeDJraeOI-vEtXbK/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/canvasview/VeDJraeOI-vEtXbK/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/canvasview/VeDJraeOI-vEtXbK/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Keys and connected agents - CanvasView\">\u003cmeta data-mint-head property=\"og:description\" content=\"Manage the agents connected through browser sign-in and the API keys your scripts use, and see what each one can reach in your organization.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"CanvasView\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.canvasview.dev/account/keys-and-agents\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://canvasview.mintlify.site/_mintlify/api/og/v2?division=Your+account\u0026amp;title=Keys+and+connected+agents\u0026amp;description=Manage+the+agents+connected+through+browser+sign-in+and+the+API+keys+your+scripts+use%2C+and+see+what+each+one+can+reach+in+your+organization.\u0026amp;theme=ac0e3eb0a1f8846324b874db\u0026amp;signature=a1dd0498506176f75e381932de5e1a99f3027cf6a1c0ef43975bf132d60aeaac\">\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=\"Keys and connected agents - CanvasView\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Manage the agents connected through browser sign-in and the API keys your scripts use, and see what each one can reach in your organization.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://canvasview.mintlify.site/_mintlify/api/og/v2?division=Your+account\u0026amp;title=Keys+and+connected+agents\u0026amp;description=Manage+the+agents+connected+through+browser+sign-in+and+the+API+keys+your+scripts+use%2C+and+see+what+each+one+can+reach+in+your+organization.\u0026amp;theme=ac0e3eb0a1f8846324b874db\u0026amp;signature=a1dd0498506176f75e381932de5e1a99f3027cf6a1c0ef43975bf132d60aeaac\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/canvasview/VeDJraeOI-vEtXbK/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"CanvasView\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#B63517\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.canvasview.dev/account/keys-and-agents\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/account/keys-and-agents.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.canvasview.dev/#organization\",\"name\":\"CanvasView\",\"url\":\"https://docs.canvasview.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/canvasview/INxxnU_mQyk4Vboo/logo/light.svg?fit=max\u0026auto=format\u0026n=INxxnU_mQyk4Vboo\u0026q=85\u0026s=e3206ec4bcec031acbb8d001964d7d64\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.canvasview.dev#website\",\"name\":\"CanvasView\",\"url\":\"https://docs.canvasview.dev\",\"publisher\":{\"@id\":\"https://docs.canvasview.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.canvasview.dev/account/keys-and-agents#webpage\",\"url\":\"https://docs.canvasview.dev/account/keys-and-agents\",\"name\":\"Keys and connected agents\",\"description\":\"Manage the agents connected through browser sign-in and the API keys your scripts use, and see what each one can reach in your organization.\",\"dateModified\":\"2026-11-13T00:20:43.048Z\",\"isPartOf\":{\"@id\":\"https://docs.canvasview.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.canvasview.dev/account/keys-and-agents#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.canvasview.dev/account/keys-and-agents#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Your account\",\"item\":\"https://docs.canvasview.dev/account/organizations-and-members\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Keys and connected agents\",\"item\":\"https://docs.canvasview.dev/account/keys-and-agents\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.canvasview.dev/account/keys-and-agents#article\",\"headline\":\"Keys and connected agents\",\"name\":\"Keys and connected agents\",\"description\":\"Manage the agents connected through browser sign-in and the API keys your scripts use, and see what each one can reach in your organization.\",\"url\":\"https://docs.canvasview.dev/account/keys-and-agents\",\"mainEntityOfPage\":{\"@id\":\"https://docs.canvasview.dev/account/keys-and-agents#webpage\"},\"dateModified\":\"2026-11-13T00:20:43.048Z\",\"publisher\":{\"@id\":\"https://docs.canvasview.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.canvasview.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"CanvasView\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"CanvasView\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/account/keys-and-agents.md","siteName":"CanvasView","nav":{"global":null,"groups":[{"group":"Start","pages":[{"title":"Connect your agent to CanvasView","href":"/index"},{"title":"What you can build","href":"/what-you-can-build"}]},{"group":"Your account","pages":[{"title":"Organizations and members","href":"/account/organizations-and-members"},{"title":"Sharing and access","href":"/account/sharing-and-access"},{"title":"Canvas lifetime","href":"/account/canvas-lifetime"},{"title":"Credits and billing","description":"What CanvasView charges for, what is free, how the daily spending cap works, and how to add credits.","href":"/account/credits-and-billing"},{"title":"Keys and connected agents","href":"/account/keys-and-agents"},{"title":"Data sources","description":"Let components on your canvases read from and write to a service you approve, without exposing its secrets to the agent or to viewers.","href":"/account/data-sources"},{"title":"Notifications","href":"/account/notifications"}]},{"group":"Working with people","pages":[{"title":"The canvas's agent","href":"/people/canvas-agent"},{"title":"Comments and change requests","href":"/people/comments-and-change-requests"},{"title":"Templates and saved components","href":"/people/templates-and-saved-components"}]},{"group":"For developers","pages":[{"title":"Events and webhooks","href":"/developers/events-and-webhooks"},{"title":"Custom components","href":"/developers/custom-components"},{"title":"API reference","href":"/developers/api-reference"}]},{"group":"Trust","pages":[{"title":"Security and data handling","href":"/trust/security"}]}]},"basePath":"","title":"Keys and connected agents - CanvasView","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":[],"chunks":[]}