Lists the connections in scope for the intern, by the key of their card on the dashboard’s Connections tab: github, slack, google, a catalog MCP server such as linear or notion, or mcp:<host> for a custom MCP server. A connection is listed when it is stored, enabled, and not turned off or hidden for this intern, as the Connections tab lists it; whether its last test passed is not part of the rule. ori features add checks a feature’s ori.requires.connections against this list. routing is the vault’s routing table for the intern: the credentials it holds and what it would inject each for, from the same lookups the egress proxy picks a credential with, GitHub repository coverage read through the installation token and cached. routing_text is that table as the lines the intern reads in its instructions. Never credentials. Returns 404 for an intern the key cannot see. The scope is selected by the API key: workspace routes act on the key’s active workspace and intern routes act on one intern inside that workspace. There is no default workspace and no fallback to another scope. Every vault route, including reads, requires access to the Intern API programme and returns 404 outside it. An intern’s own API key is confined to that intern: it can always read the intern’s secrets and effective secrets, writes to them follow the rules above, and every other intern and every workspace route answers 404. Requests on regional hostnames such as eu.openrouter.ai are refused. API key required.
The intern's routing table, for the intern's own key only; null for any other caller or when the vault could not build it in time. The keys still list.
The routing table as the plain lines the intern reads in its instructions' Connections section, or a notice that it could not be read; null for a caller other than the intern.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OpenRouter | Documentation","colors":{"primary":"#7624F4","light":"#7624F4","dark":"#C8FF00"},"logo":{"light":"https://mintcdn.com/openrouter-d02e98a0/ksNSeB_K7gD-BUDh/assets/logo-v2-light.svg?fit=max\u0026auto=format\u0026n=ksNSeB_K7gD-BUDh\u0026q=85\u0026s=690e45873843519efe02bcbe45795dac","dark":"https://mintcdn.com/openrouter-d02e98a0/ksNSeB_K7gD-BUDh/assets/logo-v2-dark.svg?fit=max\u0026auto=format\u0026n=ksNSeB_K7gD-BUDh\u0026q=85\u0026s=8ba2f49b11cd9839c37dd03c62537ebd","href":"https://openrouter.ai"},"favicon":"https://mintcdn.com/openrouter-d02e98a0/n3IgkjAMQY8SgOLX/assets/favicon-v2.svg?fit=max\u0026auto=format\u0026n=n3IgkjAMQY8SgOLX\u0026q=85\u0026s=f49800815fcadee8a07dcc093051c2de","appearance":{"default":"dark"},"background":{"color":{"light":"#FCFCFE","dark":"#03080A"}},"navbar":{"links":[{"href":"https://openrouter.ai/models","label":"Models"},{"href":"https://openrouter.ai/benchmarks","label":"Benchmarks"},{"href":"https://openrouter.ai/chat","label":"Chat"},{"href":"https://openrouter.ai/rankings","label":"Rankings"},{"href":"https://openrouter.ai/apps","label":"Apps"},{"href":"https://openrouter.ai/ori","label":"Ori"},{"href":"https://openrouter.ai/pricing","label":"Pricing"}],"primary":{"type":"button","label":"Sign In","href":"https://openrouter.ai/sign-in"}},"seo":{"metatags":{"canonical":"https://openrouter.ai/docs"}},"fonts":{"family":"Plus Jakarta Sans","weight":400},"integrations":{"ga4":{"measurementId":"G-R8YZRJS2XN"},"posthog":{"apiKey":"phc_7ToS2jDeWBlMu4n2JoNzoA1FnArdKwFMFoHVnAqQ6O1","apiHost":"https://us.i.posthog.com"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"openrouter-d02e98a0","hasAudioNarration":false,"actualSubdomain":"openrouter-d02e98a0","customDomains":["openrouter.ai"],"gitSource":{"_id":"6ad7fa92692c7c940ff17a31","type":"github","owner":"openrouterteam","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"collectionId":"857b68c3-cde9-4c7a-b45f-8477fff63b5c","liveDeploymentHistoryId":"6aecd163852e46238472000d","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aecd163852e46238472000d"},"feedback":{"contextualFeedback":{"allowEmail":true},"agentFeedback":true,"issues":false,"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aed06a81189461718d0f947","clientVersion":"0.0.4071","searchFilterCounts":[{"language":"default","tag":"API Reference","count":303},{"language":"default","tag":"Client SDKs","count":244},{"language":"default","tag":"Docs","count":155},{"language":"default","tag":"Cookbook","count":64},{"language":"default","tag":"Agent SDK","count":42},{"language":"default","tag":"TypeScript SDK","count":40},{"language":"default","tag":"Go SDK","count":39},{"language":"default","tag":"Python SDK","count":39},{"language":"default","tag":"Observability","count":29},{"language":"default","tag":"Features","count":23}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","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":"vite-origin","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":"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}],"starterQuestions":[{"_id":"6ad8ee98f69c2f90c2a8cc12","deploymentId":"6a349898c5627d470e2c2ff7","questionText":"How do I get started using decision models like Jev?","status":"active","generatedBy":"manual","createdAt":"2026-10-21T16:55:52.120Z","updatedAt":"2026-10-21T16:55:52.120Z","__v":0}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n:root{--inverse: 3 8 10;--inverse-foreground: 252 252 254;--tooltip-background: var(--inverse);--tooltip-foreground: var(--inverse-foreground)}code,pre,pre code,.code-block code,[class*=\"code\"] code{font-family:'Geist Mono', ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace}::selection{background:rgb(118 36 244 / 0.25)}.dark ::selection,html.dark ::selection{background:rgb(200 255 0 / 0.25);color:inherit}.dark,[data-theme=\"dark\"],html.dark{--primary: 200 255 0;--primary-light: 200 255 0;--primary-dark: 200 255 0;--light-primary: 200 255 0;--primary-foreground: 3 8 10;--inverse: 252 252 254;--inverse-foreground: 3 8 10;--default-border-color: rgb(252 252 254 / 0.14)}#navbar{border-radius:0}#sidebar a[aria-current=\"page\"],nav[aria-label=\"Pages\"] a[aria-current=\"page\"]{border-radius:8px}[data-component-part=\"code-block-root\"]{border-radius:8px}a:not([class]){text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:rgb(0 0 0 / 0.4)}a:not([class]):hover{text-decoration-color:currentColor}.dark a:not([class]),html.dark a:not([class]){text-decoration-color:rgb(255 255 255 / 0.4)}.dark a:not([class]):hover,html.dark a:not([class]):hover{text-decoration-color:currentColor}.nav-tag-pill-text{background:transparent!important;color:rgb(0 0 0 / 0.5)!important;border:1px solid rgb(0 0 0 / 0.2)!important}.dark .nav-tag-pill-text,html.dark .nav-tag-pill-text{background:transparent!important;color:rgb(252 252 254 / 0.5)!important;border:1px solid rgb(252 252 254 / 0.2)!important}.nav-logo{height:1.5rem}.dark nav[aria-label=\"Pages\"] button[aria-expanded] svg.transition-transform,html.dark nav[aria-label=\"Pages\"] button[aria-expanded] svg.transition-transform{color:rgb(252 252 254 / 0.627)}.dark nav[aria-label=\"Pages\"] button[aria-expanded]:hover svg.transition-transform,html.dark nav[aria-label=\"Pages\"] button[aria-expanded]:hover svg.transition-transform{color:rgb(252 252 254)}nav[aria-label=\"Pages\"] button[aria-expanded] svg.transition-transform{width:0.625rem;height:0.625rem}[role=\"tooltip\"][data-side],[data-radix-popper-content-wrapper]>div[data-state=\"delayed-open\"],[data-radix-popper-content-wrapper]>div[data-state=\"instant-open\"]{background-color:rgb(var(--tooltip-background))!important;color:rgb(var(--tooltip-foreground))!important}.callout [data-component-part=\"callout-content\"]>.code-block:first-child{margin-top:0}.callout [data-component-part=\"callout-content\"]>.code-block:last-child{margin-bottom:0}[data-floating-buttons] button{background-color:rgb(241 239 245)}.dark [data-floating-buttons] button,html.dark [data-floating-buttons] button{background-color:rgb(40 38 44)}[data-component-part=\"update-tag\"]{border:1px solid rgb(0 0 0 / 0.2);border-radius:9999px;padding:0.125rem 0.625rem;font-size:0.75rem;line-height:1.25rem;color:rgb(0 0 0 / 0.6)}.dark [data-component-part=\"update-tag\"],html.dark [data-component-part=\"update-tag\"]{border-color:rgb(252 252 254 / 0.2);color:rgb(252 252 254 / 0.6)}#topbar-cta-button svg{display:none}#topbar-cta-button a{padding-right:0.75rem}#topbar-cta-button .bg-primary-dark{background-color:rgb(var(--primary))}.dark #topbar-cta-button .text-white,html.dark #topbar-cta-button .text-white{color:rgb(3 8 10)}.dark #changelog-filters-content button.bg-primary,html.dark #changelog-filters-content button.bg-primary{color:rgb(3 8 10 / 0.9)!important}.changelog-status-badge{margin-left:0.5rem}.changelog-status-badge[data-color=\"gray\"]{border:1px solid rgb(3 8 10 / 0.3)!important}.dark .changelog-status-badge[data-color=\"gray\"],html.dark .changelog-status-badge[data-color=\"gray\"]{border-color:rgb(252 252 254 / 0.4)!important}.mermaid>svg{margin-inline:auto}.support-matrix table{font-size:0.8125rem}.support-matrix td,.support-matrix th{min-width:0;padding-right:0.5rem;white-space:nowrap}.support-matrix th code{padding-left:0.25rem;padding-right:0.25rem;font-size:0.6875rem}.pr-fig,.pr-mini{--pr-ink: #03080a;--pr-muted: rgb(3 8 10 / 0.69);--pr-rule: rgb(3 8 10 / 0.12);--pr-surface: #ffffff;--pr-positive-text: #007544;--pr-negative-text: #bf0024}.dark .pr-fig,.dark .pr-mini{--pr-ink: #fcfcfe;--pr-muted: rgb(252 252 254 / 0.627);--pr-rule: rgb(252 252 254 / 0.14);--pr-surface: #080d0f;--pr-positive-text: #34dfaa;--pr-negative-text: #ff2d55}.pr-fig{margin:1.5rem 0;padding:1rem;overflow-x:auto;container-type:inline-size;border:1px solid var(--pr-rule);border-radius:8px;background:var(--pr-surface)}.pr-fig svg{display:block;width:100%;height:auto}.pr-mini{margin:1rem 0 1.25rem}.pr-mini svg{display:block;max-width:100%;height:auto;margin-inline:auto}.pr-fig svg text,.pr-mini svg text{font-family:inherit;font-size:12px;fill:var(--pr-muted)}.pr-sw{display:inline-block;flex:none;width:12px;height:12px;border-radius:2px}.pr-bg-price{background:#0088fe}.pr-bg-ttft{background:#ffbb28}.pr-bg-speed{background:#7b68ee}.pr-bg-rel{background:#ff2d55}.pr-bg-429{background:#ff8042}.pr-bg-received{background:var(--pr-ink)}.pr-bg-capacity{background:rgb(var(--gray-400))}.pr-fill-ttft{fill:#ffbb28}.pr-fill-speed{fill:#7b68ee}.pr-fill-rel{fill:#ff2d55}.pr-fill-429{fill:#ff8042}.pr-fig .lbl{font-size:13px;fill:var(--pr-ink)}.pr-fig .num{fill:var(--pr-muted);font-variant-numeric:tabular-nums}.pr-fig .strong{fill:var(--pr-ink);font-weight:600}.pr-fig .halo{paint-order:stroke;stroke:var(--pr-surface);stroke-width:4px;stroke-linejoin:round}.pr-fig .axis{stroke:var(--pr-rule);stroke-width:1}.pr-fig .zone{fill:rgb(0 191 111 / 0.12)}.pr-fig .zone-lbl{font-weight:600;fill:var(--pr-positive-text)}.pr-fig .zone-lbl.muted{fill:var(--pr-muted)}.pr-fig .edge{stroke:#00bf6f;stroke-width:1.5;stroke-dasharray:4 3}.pr-fig .edge-curve{fill:none;stroke:#00bf6f;stroke-width:2;stroke-dasharray:5 3}.pr-fig .curve{fill:none;stroke:var(--pr-ink);stroke-width:2.5}.pr-fig .curve-fill{fill:var(--pr-ink);opacity:0.04}.pr-fig .dot{fill:var(--pr-muted);fill-opacity:0.8;stroke:var(--pr-surface);stroke-width:1.5}.pr-fig .dot-in{fill:#00bf6f;stroke:var(--pr-surface);stroke-width:1.5}.pr-fig .got{fill:none;stroke:var(--pr-ink);stroke-width:2}.pr-fig .got-fill{fill:var(--pr-ink);opacity:0.06}.pr-fig .cap{fill:none;stroke:#da70d6;stroke-width:2.5}.pr-fig .real{fill:none;stroke:var(--pr-muted);stroke-width:1.5;stroke-dasharray:5 4}.pr-fig .rate{fill:#ff8042}.pr-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:0.375rem 1rem;margin-top:0.75rem;font-size:12px;color:var(--pr-muted)}.pr-legend span{display:inline-flex;align-items:center;gap:0.375rem}.pr-ln{display:inline-block;width:18px;height:0}.pr-ln-cap{border-top:2.5px solid #da70d6}.pr-ln-real{border-top:1.5px dashed var(--pr-muted)}.pr-table{margin-top:0.875rem;border-top:1px solid var(--pr-rule);font-size:12px}.pr-row{display:grid;grid-template-columns:76px minmax(0, 1fr) 84px;gap:0.5rem;align-items:center;padding:0.375rem 0;border-bottom:1px solid var(--pr-rule)}.pr-head{color:var(--pr-muted);white-space:nowrap}.pr-sub::before{content:\", \"}.pr-name{font-weight:600;color:var(--pr-ink)}.pr-bar{display:flex;height:10px}.pr-bar i{display:block;height:100%}.pr-share{display:flex;align-items:center;gap:0.375rem}.pr-share i{display:block;height:10px;max-width:54px;border-radius:2px;background:var(--pr-muted);opacity:0.5}.pr-share b{font-weight:600;font-variant-numeric:tabular-nums;color:var(--pr-muted)}@media (max-width: 560px){.pr-row{grid-template-columns:76px minmax(0, 1fr) 32px}.pr-share i{display:none}.pr-head{white-space:normal}.pr-sub{display:block}.pr-sub::before{content:none}}@container (max-width: 480px){.pr-fig svg text{font-size:15px}.pr-fig svg .lbl{font-size:16px}}@container (max-width: 400px){.pr-fig svg text{font-size:17px}.pr-fig svg .lbl{font-size:18px}}.pr-mini-row{display:flex;justify-content:center;align-items:center;gap:0.75rem 1.5rem}.pr-mini-row svg{flex:0 1 auto;min-width:0;margin-inline:0}@media (max-width: 640px){.pr-mini-row{flex-wrap:wrap}}.pr-mini .strong-lbl{fill:var(--pr-ink);font-weight:600}.pr-mini .amt{text-anchor:end;font-variant-numeric:tabular-nums}.pr-mini .op{font-size:20px}.pr-mini .paper{fill:var(--pr-surface);stroke:var(--pr-rule);stroke-width:1}.pr-mini .usual{stroke:var(--pr-muted);stroke-width:1;stroke-dasharray:3 3}.pr-mini .sum-line{stroke:var(--pr-ink);stroke-width:1}.pr-mini .price-pill{fill:#0088fe;opacity:0.12}.pr-mini .pill-text{fill:var(--pr-ink);font-weight:600;font-variant-numeric:tabular-nums}.pr-mini .neg-pill{fill:#ff2d55;opacity:0.12}.pr-mini .neg-text{font-size:13px;fill:var(--pr-negative-text);font-weight:600;font-variant-numeric:tabular-nums}.pr-mini .span-stream{fill:var(--pr-muted);opacity:0.3}.pr-mini .span-total{fill:var(--pr-rule)}.pr-mini .extra{opacity:0.45}.pr-mini .bad{fill:none;stroke:#ff2d55;stroke-width:1.5}.pr-mini .tree{fill:none;stroke:var(--pr-muted);stroke-width:1}.pr-mini .brace{fill:none;stroke:var(--pr-muted);stroke-width:1.25}.pr-mini .big-arrow{fill:none;stroke:var(--pr-ink);stroke-width:3}.pr-mini .big-arrow-head,.pr-mini .user-dot{fill:var(--pr-ink)}.pr-factors ul{list-style:none;padding-left:0}.pr-factors li{padding-left:0!important}.pr-factors li::before{display:none}.pr-factors .pr-sw,h3 .pr-sw{margin-right:0.625rem;transform:translateY(1px)}h3 .pr-sw{width:13px;height:13px;transform:translateY(-2px)}.pr-cols{display:grid;grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));gap:0 1.75rem}"}],"page":{"pagePath":"api/api-reference/vault/list-the-connections-an-intern-can-use","slug":"/api/api-reference/vault/list-the-connections-an-intern-can-use","pageMetadata":{"title":"List the connections an intern can use","description":"Lists the connections in scope for the intern, by the key of their card on the dashboard's Connections tab: `github`, `slack`, `google`, a catalog MCP server such as `linear` or `notion`, or `mcp:\u003chost>` for a custom MCP server. A connection is listed when it is stored, enabled, and not turned off or hidden for this intern, as the Connections tab lists it; whether its last test passed is not part of the rule. `ori features add` checks a feature's `ori.requires.connections` against this list. `routing` is the vault's routing table for the intern: the credentials it holds and what it would inject each for, from the same lookups the egress proxy picks a credential with, GitHub repository coverage read through the installation token and cached. `routing_text` is that table as the lines the intern reads in its instructions. Never credentials. Returns 404 for an intern the key cannot see. The scope is selected by the API key: workspace routes act on the key's active workspace and intern routes act on one intern inside that workspace. There is no default workspace and no fallback to another scope. Every vault route, including reads, requires access to the Intern API programme and returns 404 outside it. An intern's own API key is confined to that intern: it can always read the intern's secrets and effective secrets, writes to them follow the rules above, and every other intern and every workspace route answers 404. Requests on regional hostnames such as `eu.openrouter.ai` are refused. [API key](/docs/api-reference/authentication) required.","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /vault/interns/{internId}/connections","href":"/api/api-reference/vault/list-the-connections-an-intern-can-use","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Lists the connections in scope for the intern, by the key of their card on the dashboard’s Connections tab: \", _jsx(_components.code, {\n children: \"github\"\n }), \", \", _jsx(_components.code, {\n children: \"slack\"\n }), \", \", _jsx(_components.code, {\n children: \"google\"\n }), \", a catalog MCP server such as \", _jsx(_components.code, {\n children: \"linear\"\n }), \" or \", _jsx(_components.code, {\n children: \"notion\"\n }), \", or \", _jsx(_components.code, {\n children: \"mcp:\u003chost>\"\n }), \" for a custom MCP server. A connection is listed when it is stored, enabled, and not turned off or hidden for this intern, as the Connections tab lists it; whether its last test passed is not part of the rule. \", _jsx(_components.code, {\n children: \"ori features add\"\n }), \" checks a feature’s \", _jsx(_components.code, {\n children: \"ori.requires.connections\"\n }), \" against this list. \", _jsx(_components.code, {\n children: \"routing\"\n }), \" is the vault’s routing table for the intern: the credentials it holds and what it would inject each for, from the same lookups the egress proxy picks a credential with, GitHub repository coverage read through the installation token and cached. \", _jsx(_components.code, {\n children: \"routing_text\"\n }), \" is that table as the lines the intern reads in its instructions. Never credentials. Returns 404 for an intern the key cannot see. The scope is selected by the API key: workspace routes act on the key’s active workspace and intern routes act on one intern inside that workspace. There is no default workspace and no fallback to another scope. Every vault route, including reads, requires access to the Intern API programme and returns 404 outside it. An intern’s own API key is confined to that intern: it can always read the intern’s secrets and effective secrets, writes to them follow the rules above, and every other intern and every workspace route answers 404. Requests on regional hostnames such as \", _jsx(_components.code, {\n children: \"eu.openrouter.ai\"\n }), \" are refused. \", _jsx(_components.a, {\n href: \"/docs/api-reference/authentication\",\n children: \"API key\"\n }), \" required.\"]\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":"List the connections an intern can use","description":"Lists the connections in scope for the intern, by the key of their card on the dashboard's Connections tab: `github`, `slack`, `google`, a catalog MCP server such as `linear` or `notion`, or `mcp:\u003chost>` for a custom MCP server. A connection is listed when it is stored, enabled, and not turned off or hidden for this intern, as the Connections tab lists it; whether its last test passed is not part of the rule. `ori features add` checks a feature's `ori.requires.connections` against this list. `routing` is the vault's routing table for the intern: the credentials it holds and what it would inject each for, from the same lookups the egress proxy picks a credential with, GitHub repository coverage read through the installation token and cached. `routing_text` is that table as the lines the intern reads in its instructions. Never credentials. Returns 404 for an intern the key cannot see. The scope is selected by the API key: workspace routes act on the key's active workspace and intern routes act on one intern inside that workspace. There is no default workspace and no fallback to another scope. Every vault route, including reads, requires access to the Intern API programme and returns 404 outside it. An intern's own API key is confined to that intern: it can always read the intern's secrets and effective secrets, writes to them follow the rules above, and every other intern and every workspace route answers 404. Requests on regional hostnames such as `eu.openrouter.ai` are refused. [API key](/docs/api-reference/authentication) required.","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /vault/interns/{internId}/connections","href":"/api/api-reference/vault/list-the-connections-an-intern-can-use","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/openrouter-d02e98a0/c1fa764d8c861cbd/anchor-scroll-fix.js","/docs/_mintlify/custom/openrouter-d02e98a0/c43dc2bfe5fa3c92/auth-cta.js"],"openApiReferenceData":{"operation":{"description":"Lists the connections in scope for the intern, by the key of their card on the dashboard's Connections tab: `github`, `slack`, `google`, a catalog MCP server such as `linear` or `notion`, or `mcp:\u003chost>` for a custom MCP server. A connection is listed when it is stored, enabled, and not turned off or hidden for this intern, as the Connections tab lists it; whether its last test passed is not part of the rule. `ori features add` checks a feature's `ori.requires.connections` against this list. `routing` is the vault's routing table for the intern: the credentials it holds and what it would inject each for, from the same lookups the egress proxy picks a credential with, GitHub repository coverage read through the installation token and cached. `routing_text` is that table as the lines the intern reads in its instructions. Never credentials. Returns 404 for an intern the key cannot see. The scope is selected by the API key: workspace routes act on the key's active workspace and intern routes act on one intern inside that workspace. There is no default workspace and no fallback to another scope. Every vault route, including reads, requires access to the Intern API programme and returns 404 outside it. An intern's own API key is confined to that intern: it can always read the intern's secrets and effective secrets, writes to them follow the rules above, and every other intern and every workspace route answers 404. Requests on regional hostnames such as `eu.openrouter.ai` are refused. [API key](/docs/api-reference/authentication) required.","operationId":"listInternConnections","parameters":["adb5201e-3c42-4f39-a268-0e6d22211f9c"],"responses":{"200":"547e80c9-5e37-4bb8-9507-23cf7c0ff988","400":"18cdccc3-b946-4851-af3d-a57b6c5f6922","401":"d7eff1a6-ec26-4c8a-b5d9-60bae1bcb164","403":"e325e708-d14f-44dd-934a-af4cf8d376a9","404":"3879bbd0-d734-4b51-b789-78878f0739e5","408":"006b47d3-4ed0-4b28-85be-67e3254ce09b","429":"ec1b0d86-f0b4-414c-932e-33c92499a488","500":"cb324632-98f7-4d99-b3f6-c10e916a85a3","502":"fb31f10c-ea63-473a-b5e1-ccd7fc84ffc4","503":"9ca7b600-7da8-4afe-bc12-084f20e7fa2e","504":"03f245f7-85d5-431e-99ef-278bcc7cc5be"},"security":["df414241-1f7b-4423-8a5e-82d6b327269d"],"summary":"List the connections an intern can use","tags":["Vault"],"method":"get","type":"path","servers":["7075e944-05e2-4e86-8b6c-ac9eb4ffd9f1"],"path":"/vault/interns/{internId}/connections","baseUrlOptions":["https://openrouter.ai/api/v1"],"title":"List the connections an intern can use","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"adb5201e-3c42-4f39-a268-0e6d22211f9c":{"description":"UUID of an intern in the workspace selected by the API key.","in":"path","name":"internId","required":true,"schema":{"description":"UUID of an intern in the workspace selected by the API key.","example":"7c9e6679-7425-40de-944b-e07fc1f90ae7","format":"uuid","type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"responses":{"547e80c9-5e37-4bb8-9507-23cf7c0ff988":{"content":{"application/json":{"example":{"data":[{"key":"github"},{"key":"linear"}],"routing":{"agent_id":"intern_123","custom_origins":[],"github":{"apps":[{"app_id":"71000003","app_slug":"openrouter-interns","installations":[{"account":"OpenRouterTeam","account_type":"organization","coverage":{"checked_at":"2026-10-27T19:30:00.000Z","repository_count":42,"selection":"all"},"credential_id":"cred_1","holds_token":true,"is_enabled":true,"is_off_for_intern":false}],"member_links":[{"holds_token":true,"login":"gfadlallah","member_user_id":"user_1"}],"scope":"workspace"}],"tokens":[]},"google":{"accounts":[]},"host_rules":[{"holds_secret":false,"host":"api.openai.com","secret_name":"openai_api_key"}],"mcp_origins":[{"account_key":null,"holds_secret":true,"host":"mcp.linear.app","injects":"bearer","is_personal":false,"routes":[{"host":"mcp.linear.app","path_prefix":null}]}],"read_at":"2026-10-27T20:00:00.000Z","secrets":[{"created_at":"2026-09-15T10:00:00.000Z","hosts":["api.linear.app"],"name":"linear_api_key","scope":"workspace"}],"slack":{"member_links":[]}},"routing_text":"## Connections\n\n..."},"schema":{"properties":{"data":{"items":{"properties":{"key":{"type":"string","isRequired":true,"uniqueKey":"data.items.[INDEX].key","typeLabel":"string"}},"required":["key"],"type":"object","uniqueKey":"data.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"data","typeLabel":"object[]"},"routing":{"oneOf":[{"description":"The intern's routing table, for the intern's own key only; null for any other caller or when the vault could not build it in time. The keys still list.","properties":{"agent_id":{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.agent_id","typeLabel":"string"},"custom_origins":{"items":{"properties":{"host":{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.custom_origins.items.[INDEX].host","typeLabel":"string"},"path_prefix":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.custom_origins.items.[INDEX].path_prefix.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"routing.oneOf.0.custom_origins.items.[INDEX].path_prefix.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"routing.oneOf.0.custom_origins.items.[INDEX].path_prefix","typeLabel":"string | null"},"status":{"description":"The vault injection decision for this destination, at `read_at`.","properties":{"failure":{"oneOf":[{"description":"The credential failure code when `state` is `failing`; null otherwise.","type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.custom_origins.items.[INDEX].status.failure.oneOf.0","typeLabel":"string"},{"description":"The credential failure code when `state` is `failing`; null otherwise.","type":"null","isRequired":true,"uniqueKey":"routing.oneOf.0.custom_origins.items.[INDEX].status.failure.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"routing.oneOf.0.custom_origins.items.[INDEX].status.failure","typeLabel":"string | null"},"state":{"enum":["usable","no_credential","failing"],"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.custom_origins.items.[INDEX].status.state","typeLabel":"enum\u003cstring>"}},"required":["state","failure"],"type":"object","isRequired":true,"uniqueKey":"routing.oneOf.0.custom_origins.items.[INDEX].status","typeLabel":"object"}},"required":["host","path_prefix","status"],"type":"object","uniqueKey":"routing.oneOf.0.custom_origins.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"routing.oneOf.0.custom_origins","typeLabel":"object[]"},"github":{"properties":{"apps":{"items":{"properties":{"app_id":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].app_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].app_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].app_id","typeLabel":"string | null"},"app_slug":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].app_slug.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].app_slug.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].app_slug","typeLabel":"string | null"},"installations":{"items":{"properties":{"account":{"description":"The account the App is installed on, as GitHub spells it.","type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].account","typeLabel":"string"},"account_type":{"oneOf":[{"enum":["organization","user",null],"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].account_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"enum":["organization","user",null],"type":"null","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].account_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].account_type","typeLabel":"enum\u003cstring> | null"},"coverage":{"oneOf":[{"description":"What GitHub says the installation covers; null until read.","properties":{"checked_at":{"description":"When GitHub answered, through the installation token the vault holds.","format":"date-time","type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].coverage.oneOf.0.checked_at","typeLabel":"string\u003cdate-time>"},"repository_count":{"oneOf":[{"description":"Repositories the installation covers; null when GitHub did not count them.","type":"integer","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].coverage.oneOf.0.repository_count.oneOf.0","typeLabel":"integer"},{"description":"Repositories the installation covers; null when GitHub did not count them.","type":"null","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].coverage.oneOf.0.repository_count.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].coverage.oneOf.0.repository_count","typeLabel":"integer | null"},"selection":{"enum":["all","selected"],"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].coverage.oneOf.0.selection","typeLabel":"enum\u003cstring>"}},"required":["selection","repository_count","checked_at"],"type":"object","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].coverage.oneOf.0","typeLabel":"object"},{"description":"What GitHub says the installation covers; null until read.","properties":{"checked_at":{"description":"When GitHub answered, through the installation token the vault holds.","format":"date-time","type":"string"},"repository_count":{"oneOf":[{"description":"Repositories the installation covers; null when GitHub did not count them.","type":"integer"},{"description":"Repositories the installation covers; null when GitHub did not count them.","type":"null"}]},"selection":{"enum":["all","selected"],"type":"string"}},"required":["selection","repository_count","checked_at"],"type":"null","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].coverage.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].coverage","typeLabel":"object | null"},"credential_id":{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].credential_id","typeLabel":"string"},"holds_token":{"description":"Whether the vault holds a current installation token to inject.","type":"boolean","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].holds_token","typeLabel":"boolean"},"is_enabled":{"type":"boolean","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].is_enabled","typeLabel":"boolean"},"is_off_for_intern":{"description":"The workspace turned this shared installation off or hid it for this intern.","type":"boolean","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].is_off_for_intern","typeLabel":"boolean"},"shadowed_by":{"oneOf":[{"description":"What egress uses instead of this installation for a request to its account: an earlier installation on the same account, or a token pinned to the account. Null when this installation answers.","enum":["installation","token",null],"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].shadowed_by.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"What egress uses instead of this installation for a request to its account: an earlier installation on the same account, or a token pinned to the account. Null when this installation answers.","enum":["installation","token",null],"type":"null","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].shadowed_by.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX].shadowed_by","typeLabel":"enum\u003cstring> | null"}},"required":["credential_id","account","account_type","is_enabled","is_off_for_intern","holds_token","coverage","shadowed_by"],"type":"object","uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].installations","typeLabel":"object[]"},"member_links":{"description":"Members whose own account the vault would act as on this App's accounts; GitHub still limits a member's token to what that member can reach.","items":{"properties":{"holds_token":{"type":"boolean","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].member_links.items.[INDEX].holds_token","typeLabel":"boolean"},"login":{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].member_links.items.[INDEX].login","typeLabel":"string"},"via":{"description":"How the vault picks this link for the App, by the same selection egress uses.","enum":["app_link","token","any_link"],"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].member_links.items.[INDEX].via","typeLabel":"enum\u003cstring>"}},"required":["login","via","holds_token"],"type":"object","uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].member_links.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].member_links","typeLabel":"object[]"},"scope":{"description":"`workspace` applies to every intern of the workspace; `intern` to this intern alone.","enum":["workspace","intern"],"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX].scope","typeLabel":"enum\u003cstring>"}},"required":["app_id","app_slug","scope","installations","member_links"],"type":"object","uniqueKey":"routing.oneOf.0.github.apps.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"routing.oneOf.0.github.apps","typeLabel":"object[]"},"tokens":{"items":{"properties":{"holds_token":{"type":"boolean","isRequired":true,"uniqueKey":"routing.oneOf.0.github.tokens.items.[INDEX].holds_token","typeLabel":"boolean"},"login":{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.github.tokens.items.[INDEX].login","typeLabel":"string"},"owner":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.github.tokens.items.[INDEX].owner.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"routing.oneOf.0.github.tokens.items.[INDEX].owner.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"routing.oneOf.0.github.tokens.items.[INDEX].owner","typeLabel":"string | null"},"repository_count":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"routing.oneOf.0.github.tokens.items.[INDEX].repository_count.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"routing.oneOf.0.github.tokens.items.[INDEX].repository_count.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"routing.oneOf.0.github.tokens.items.[INDEX].repository_count","typeLabel":"integer | null"},"scope":{"description":"`workspace` applies to every intern of the workspace; `intern` to this intern alone.","enum":["workspace","intern"],"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.github.tokens.items.[INDEX].scope","typeLabel":"enum\u003cstring>"}},"required":["login","owner","repository_count","scope","holds_token"],"type":"object","uniqueKey":"routing.oneOf.0.github.tokens.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"routing.oneOf.0.github.tokens","typeLabel":"object[]"}},"required":["apps","tokens"],"type":"object","isRequired":true,"uniqueKey":"routing.oneOf.0.github","typeLabel":"object"},"google":{"properties":{"accounts":{"items":{"properties":{"delegated_capabilities":{"items":{"type":"string","uniqueKey":"routing.oneOf.0.google.accounts.items.[INDEX].delegated_capabilities.items.[INDEX]","typeLabel":"string"},"type":"array","isRequired":true,"uniqueKey":"routing.oneOf.0.google.accounts.items.[INDEX].delegated_capabilities","typeLabel":"string[]"},"email":{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.google.accounts.items.[INDEX].email","typeLabel":"string"},"holds_grant":{"type":"boolean","isRequired":true,"uniqueKey":"routing.oneOf.0.google.accounts.items.[INDEX].holds_grant","typeLabel":"boolean"},"is_delegated_to_intern":{"type":"boolean","isRequired":true,"uniqueKey":"routing.oneOf.0.google.accounts.items.[INDEX].is_delegated_to_intern","typeLabel":"boolean"},"scope":{"description":"`workspace` applies to every intern of the workspace; `intern` to this intern alone.","enum":["workspace","intern"],"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.google.accounts.items.[INDEX].scope","typeLabel":"enum\u003cstring>"}},"required":["email","scope","is_delegated_to_intern","delegated_capabilities","holds_grant"],"type":"object","uniqueKey":"routing.oneOf.0.google.accounts.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"routing.oneOf.0.google.accounts","typeLabel":"object[]"}},"required":["accounts"],"type":"object","isRequired":true,"uniqueKey":"routing.oneOf.0.google","typeLabel":"object"},"host_rules":{"description":"Built-in hosts the vault injects a named secret for, and whether that secret is stored.","items":{"properties":{"holds_secret":{"type":"boolean","isRequired":true,"uniqueKey":"routing.oneOf.0.host_rules.items.[INDEX].holds_secret","typeLabel":"boolean"},"host":{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.host_rules.items.[INDEX].host","typeLabel":"string"},"secret_name":{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.host_rules.items.[INDEX].secret_name","typeLabel":"string"}},"required":["host","secret_name","holds_secret"],"type":"object","uniqueKey":"routing.oneOf.0.host_rules.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"routing.oneOf.0.host_rules","typeLabel":"object[]"},"mcp_origins":{"items":{"properties":{"account_key":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].account_key.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].account_key.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].account_key","typeLabel":"string | null"},"host":{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].host","typeLabel":"string"},"is_personal":{"description":"Members' own accounts, matched to the acting member per turn.","type":"boolean","isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].is_personal","typeLabel":"boolean"},"routes":{"items":{"properties":{"host":{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].routes.items.[INDEX].host","typeLabel":"string"},"path_prefix":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].routes.items.[INDEX].path_prefix.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].routes.items.[INDEX].path_prefix.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].routes.items.[INDEX].path_prefix","typeLabel":"string | null"}},"required":["host","path_prefix"],"type":"object","uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].routes.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].routes","typeLabel":"object[]"},"status":{"oneOf":[{"description":"The vault's decision for a request to this server; null for members' own accounts, decided per acting member.","properties":{"failure":{"oneOf":[{"description":"The credential failure code when `state` is `failing`; null otherwise.","type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].status.oneOf.0.failure.oneOf.0","typeLabel":"string"},{"description":"The credential failure code when `state` is `failing`; null otherwise.","type":"null","isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].status.oneOf.0.failure.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].status.oneOf.0.failure","typeLabel":"string | null"},"state":{"enum":["usable","no_credential","failing"],"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].status.oneOf.0.state","typeLabel":"enum\u003cstring>"}},"required":["state","failure"],"type":"object","isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].status.oneOf.0","typeLabel":"object"},{"description":"The vault's decision for a request to this server; null for members' own accounts, decided per acting member.","properties":{"failure":{"oneOf":[{"description":"The credential failure code when `state` is `failing`; null otherwise.","type":"string"},{"description":"The credential failure code when `state` is `failing`; null otherwise.","type":"null"}]},"state":{"enum":["usable","no_credential","failing"],"type":"string"}},"required":["state","failure"],"type":"null","isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].status.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX].status","typeLabel":"object | null"}},"required":["host","account_key","is_personal","routes","status"],"type":"object","uniqueKey":"routing.oneOf.0.mcp_origins.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"routing.oneOf.0.mcp_origins","typeLabel":"object[]"},"read_at":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.read_at","typeLabel":"string\u003cdate-time>"},"secrets":{"items":{"properties":{"created_at":{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.secrets.items.[INDEX].created_at","typeLabel":"string"},"hosts":{"oneOf":[{"items":{"type":"string","uniqueKey":"routing.oneOf.0.secrets.items.[INDEX].hosts.oneOf.0.items.[INDEX]","typeLabel":"string"},"type":"array","isRequired":true,"uniqueKey":"routing.oneOf.0.secrets.items.[INDEX].hosts.oneOf.0","typeLabel":"string[]"},{"items":{"type":"string"},"type":"null","isRequired":true,"uniqueKey":"routing.oneOf.0.secrets.items.[INDEX].hosts.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"routing.oneOf.0.secrets.items.[INDEX].hosts","typeLabel":"string[] | null"},"name":{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.secrets.items.[INDEX].name","typeLabel":"string"},"scope":{"enum":["intern","attached","workspace"],"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.secrets.items.[INDEX].scope","typeLabel":"enum\u003cstring>"}},"required":["name","hosts","scope","created_at"],"type":"object","uniqueKey":"routing.oneOf.0.secrets.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"routing.oneOf.0.secrets","typeLabel":"object[]"},"slack":{"properties":{"member_links":{"description":"Members whose own Slack account the vault can act as; whether the intern's own Slack app runs is a runtime fact the `connections` tool reports.","items":{"properties":{"holds_token":{"type":"boolean","isRequired":true,"uniqueKey":"routing.oneOf.0.slack.member_links.items.[INDEX].holds_token","typeLabel":"boolean"},"slack_user_id":{"type":"string","isRequired":true,"uniqueKey":"routing.oneOf.0.slack.member_links.items.[INDEX].slack_user_id","typeLabel":"string"}},"required":["slack_user_id","holds_token"],"type":"object","uniqueKey":"routing.oneOf.0.slack.member_links.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"routing.oneOf.0.slack.member_links","typeLabel":"object[]"}},"required":["member_links"],"type":"object","isRequired":true,"uniqueKey":"routing.oneOf.0.slack","typeLabel":"object"}},"required":["agent_id","read_at","github","google","slack","mcp_origins","host_rules","custom_origins","secrets"],"type":"object","isRequired":true,"uniqueKey":"routing.oneOf.0","typeLabel":"object"},{"description":"The intern's routing table, for the intern's own key only; null for any other caller or when the vault could not build it in time. The keys still list.","properties":{"agent_id":{"type":"string"},"custom_origins":{"items":{"properties":{"host":{"type":"string"},"path_prefix":{"oneOf":[{"type":"string"},{"type":"null"}]},"status":{"description":"The vault injection decision for this destination, at `read_at`.","properties":{"failure":{"oneOf":[{"description":"The credential failure code when `state` is `failing`; null otherwise.","type":"string"},{"description":"The credential failure code when `state` is `failing`; null otherwise.","type":"null"}]},"state":{"enum":["usable","no_credential","failing"],"type":"string"}},"required":["state","failure"],"type":"object"}},"required":["host","path_prefix","status"],"type":"object"},"type":"array"},"github":{"properties":{"apps":{"items":{"properties":{"app_id":{"oneOf":[{"type":"string"},{"type":"null"}]},"app_slug":{"oneOf":[{"type":"string"},{"type":"null"}]},"installations":{"items":{"properties":{"account":{"description":"The account the App is installed on, as GitHub spells it.","type":"string"},"account_type":{"oneOf":[{"enum":["organization","user",null],"type":"string"},{"enum":["organization","user",null],"type":"null"}]},"coverage":{"oneOf":[{"description":"What GitHub says the installation covers; null until read.","properties":{"checked_at":{"description":"When GitHub answered, through the installation token the vault holds.","format":"date-time","type":"string"},"repository_count":{"oneOf":[{"description":"Repositories the installation covers; null when GitHub did not count them.","type":"integer"},{"description":"Repositories the installation covers; null when GitHub did not count them.","type":"null"}]},"selection":{"enum":["all","selected"],"type":"string"}},"required":["selection","repository_count","checked_at"],"type":"object"},{"description":"What GitHub says the installation covers; null until read.","properties":{"checked_at":{"description":"When GitHub answered, through the installation token the vault holds.","format":"date-time","type":"string"},"repository_count":{"oneOf":[{"description":"Repositories the installation covers; null when GitHub did not count them.","type":"integer"},{"description":"Repositories the installation covers; null when GitHub did not count them.","type":"null"}]},"selection":{"enum":["all","selected"],"type":"string"}},"required":["selection","repository_count","checked_at"],"type":"null"}]},"credential_id":{"type":"string"},"holds_token":{"description":"Whether the vault holds a current installation token to inject.","type":"boolean"},"is_enabled":{"type":"boolean"},"is_off_for_intern":{"description":"The workspace turned this shared installation off or hid it for this intern.","type":"boolean"},"shadowed_by":{"oneOf":[{"description":"What egress uses instead of this installation for a request to its account: an earlier installation on the same account, or a token pinned to the account. Null when this installation answers.","enum":["installation","token",null],"type":"string"},{"description":"What egress uses instead of this installation for a request to its account: an earlier installation on the same account, or a token pinned to the account. Null when this installation answers.","enum":["installation","token",null],"type":"null"}]}},"required":["credential_id","account","account_type","is_enabled","is_off_for_intern","holds_token","coverage","shadowed_by"],"type":"object"},"type":"array"},"member_links":{"description":"Members whose own account the vault would act as on this App's accounts; GitHub still limits a member's token to what that member can reach.","items":{"properties":{"holds_token":{"type":"boolean"},"login":{"type":"string"},"via":{"description":"How the vault picks this link for the App, by the same selection egress uses.","enum":["app_link","token","any_link"],"type":"string"}},"required":["login","via","holds_token"],"type":"object"},"type":"array"},"scope":{"description":"`workspace` applies to every intern of the workspace; `intern` to this intern alone.","enum":["workspace","intern"],"type":"string"}},"required":["app_id","app_slug","scope","installations","member_links"],"type":"object"},"type":"array"},"tokens":{"items":{"properties":{"holds_token":{"type":"boolean"},"login":{"type":"string"},"owner":{"oneOf":[{"type":"string"},{"type":"null"}]},"repository_count":{"oneOf":[{"type":"integer"},{"type":"null"}]},"scope":{"description":"`workspace` applies to every intern of the workspace; `intern` to this intern alone.","enum":["workspace","intern"],"type":"string"}},"required":["login","owner","repository_count","scope","holds_token"],"type":"object"},"type":"array"}},"required":["apps","tokens"],"type":"object"},"google":{"properties":{"accounts":{"items":{"properties":{"delegated_capabilities":{"items":{"type":"string"},"type":"array"},"email":{"type":"string"},"holds_grant":{"type":"boolean"},"is_delegated_to_intern":{"type":"boolean"},"scope":{"description":"`workspace` applies to every intern of the workspace; `intern` to this intern alone.","enum":["workspace","intern"],"type":"string"}},"required":["email","scope","is_delegated_to_intern","delegated_capabilities","holds_grant"],"type":"object"},"type":"array"}},"required":["accounts"],"type":"object"},"host_rules":{"description":"Built-in hosts the vault injects a named secret for, and whether that secret is stored.","items":{"properties":{"holds_secret":{"type":"boolean"},"host":{"type":"string"},"secret_name":{"type":"string"}},"required":["host","secret_name","holds_secret"],"type":"object"},"type":"array"},"mcp_origins":{"items":{"properties":{"account_key":{"oneOf":[{"type":"string"},{"type":"null"}]},"host":{"type":"string"},"is_personal":{"description":"Members' own accounts, matched to the acting member per turn.","type":"boolean"},"routes":{"items":{"properties":{"host":{"type":"string"},"path_prefix":{"oneOf":[{"type":"string"},{"type":"null"}]}},"required":["host","path_prefix"],"type":"object"},"type":"array"},"status":{"oneOf":[{"description":"The vault's decision for a request to this server; null for members' own accounts, decided per acting member.","properties":{"failure":{"oneOf":[{"description":"The credential failure code when `state` is `failing`; null otherwise.","type":"string"},{"description":"The credential failure code when `state` is `failing`; null otherwise.","type":"null"}]},"state":{"enum":["usable","no_credential","failing"],"type":"string"}},"required":["state","failure"],"type":"object"},{"description":"The vault's decision for a request to this server; null for members' own accounts, decided per acting member.","properties":{"failure":{"oneOf":[{"description":"The credential failure code when `state` is `failing`; null otherwise.","type":"string"},{"description":"The credential failure code when `state` is `failing`; null otherwise.","type":"null"}]},"state":{"enum":["usable","no_credential","failing"],"type":"string"}},"required":["state","failure"],"type":"null"}]}},"required":["host","account_key","is_personal","routes","status"],"type":"object"},"type":"array"},"read_at":{"format":"date-time","type":"string"},"secrets":{"items":{"properties":{"created_at":{"type":"string"},"hosts":{"oneOf":[{"items":{"type":"string"},"type":"array"},{"items":{"type":"string"},"type":"null"}]},"name":{"type":"string"},"scope":{"enum":["intern","attached","workspace"],"type":"string"}},"required":["name","hosts","scope","created_at"],"type":"object"},"type":"array"},"slack":{"properties":{"member_links":{"description":"Members whose own Slack account the vault can act as; whether the intern's own Slack app runs is a runtime fact the `connections` tool reports.","items":{"properties":{"holds_token":{"type":"boolean"},"slack_user_id":{"type":"string"}},"required":["slack_user_id","holds_token"],"type":"object"},"type":"array"}},"required":["member_links"],"type":"object"}},"required":["agent_id","read_at","github","google","slack","mcp_origins","host_rules","custom_origins","secrets"],"type":"null","isRequired":true,"uniqueKey":"routing.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"routing","typeLabel":"object | null"},"routing_text":{"oneOf":[{"description":"The routing table as the plain lines the intern reads in its instructions' Connections section, or a notice that it could not be read; null for a caller other than the intern.","type":"string","isRequired":true,"uniqueKey":"routing_text.oneOf.0","typeLabel":"string"},{"description":"The routing table as the plain lines the intern reads in its instructions' Connections section, or a notice that it could not be read; null for a caller other than the intern.","type":"null","isRequired":true,"uniqueKey":"routing_text.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"routing_text","typeLabel":"string | null"}},"required":["data","routing","routing_text"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":[{"key":"github"},{"key":"linear"}],"routing":{"agent_id":"intern_123","custom_origins":[],"github":{"apps":[{"app_id":"71000003","app_slug":"openrouter-interns","installations":[{"account":"OpenRouterTeam","account_type":"organization","coverage":{"checked_at":"2026-10-27T19:30:00.000Z","repository_count":42,"selection":"all"},"credential_id":"cred_1","holds_token":true,"is_enabled":true,"is_off_for_intern":false}],"member_links":[{"holds_token":true,"login":"gfadlallah","member_user_id":"user_1"}],"scope":"workspace"}],"tokens":[]},"google":{"accounts":[]},"host_rules":[{"holds_secret":false,"host":"api.openai.com","secret_name":"openai_api_key"}],"mcp_origins":[{"account_key":null,"holds_secret":true,"host":"mcp.linear.app","injects":"bearer","is_personal":false,"routes":[{"host":"mcp.linear.app","path_prefix":null}]}],"read_at":"2026-10-27T20:00:00.000Z","secrets":[{"created_at":"2026-09-15T10:00:00.000Z","hosts":["api.linear.app"],"name":"linear_api_key","scope":"workspace"}],"slack":{"member_links":[]}},"routing_text":"## Connections\n\n..."}}},"exampleType":"examples"}},"description":"The connections the intern can use.","exampleType":"examples"},"18cdccc3-b946-4851-af3d-a57b6c5f6922":{"content":{"application/json":{"examples":{"invalid-vault-request":{"title":"invalid-vault-request","value":{"error":{"code":400,"message":"Invalid vault request"}}}},"schema":{"description":"Bad Request - Invalid request parameters or malformed input","example":{"error":{"code":400,"message":"Invalid request parameters"}},"properties":{"error":{"description":"Error data for BadRequestResponse","example":{"code":400,"message":"Invalid request parameters"},"properties":{"code":{"type":"integer","isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"error.metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"error.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.metadata","typeLabel":"object | null"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"openrouter_metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"openrouter_metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"openrouter_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"openrouter_metadata","typeLabel":"object | null"},"user_id":{"oneOf":[{"type":"string","uniqueKey":"user_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"user_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"user_id","typeLabel":"string | null"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"Bad Request - The secret name, path, query or JSON body failed validation. The vault returns 400 for a malformed request as well.","exampleType":"examples"},"d7eff1a6-ec26-4c8a-b5d9-60bae1bcb164":{"content":{"application/json":{"examples":{"invalid-or-missing-api-key":{"title":"invalid-or-missing-api-key","value":{"error":{"code":401,"message":"Invalid or missing API key"}}}},"schema":{"description":"Unauthorized - Authentication required or invalid credentials","example":{"error":{"code":401,"message":"Missing Authentication header"}},"properties":{"error":{"description":"Error data for UnauthorizedResponse","example":{"code":401,"message":"Missing Authentication header"},"properties":{"code":{"type":"integer","isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"error.metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"error.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.metadata","typeLabel":"object | null"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"openrouter_metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"openrouter_metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"openrouter_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"openrouter_metadata","typeLabel":"object | null"},"user_id":{"oneOf":[{"type":"string","uniqueKey":"user_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"user_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"user_id","typeLabel":"string | null"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"Unauthorized - Missing or unknown API key. Provisioning keys cannot call vault routes.","exampleType":"examples"},"e325e708-d14f-44dd-934a-af4cf8d376a9":{"content":{"application/json":{"examples":{"regional-hostname":{"title":"regional-hostname","value":{"error":{"code":403,"message":"The Intern API does not support regional data residency yet. Please use the global endpoint at openrouter.ai."}}},"workspace-scope-unavailable":{"title":"workspace-scope-unavailable","value":{"error":{"code":403,"message":"Vault scope is unavailable"}}}},"schema":{"description":"Forbidden - Authentication successful but insufficient permissions","example":{"error":{"code":403,"message":"Only management keys can perform this operation"}},"properties":{"error":{"description":"Error data for ForbiddenResponse","example":{"code":403,"message":"Only management keys can perform this operation"},"properties":{"code":{"type":"integer","isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"error.metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"error.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.metadata","typeLabel":"object | null"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"openrouter_metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"openrouter_metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"openrouter_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"openrouter_metadata","typeLabel":"object | null"},"user_id":{"oneOf":[{"type":"string","uniqueKey":"user_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"user_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"user_id","typeLabel":"string | null"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"Forbidden - The key has no usable workspace scope, or the request arrived on a regional hostname.","exampleType":"examples"},"3879bbd0-d734-4b51-b789-78878f0739e5":{"content":{"application/json":{"examples":{"not-found":{"title":"not-found","value":{"error":{"code":404,"message":"Not found"}}}},"schema":{"description":"Not Found - Resource does not exist","example":{"error":{"code":404,"message":"Resource not found"}},"properties":{"error":{"description":"Error data for NotFoundResponse","example":{"code":404,"message":"Resource not found"},"properties":{"code":{"type":"integer","isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"error.metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"error.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.metadata","typeLabel":"object | null"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"openrouter_metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"openrouter_metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"openrouter_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"openrouter_metadata","typeLabel":"object | null"},"user_id":{"oneOf":[{"type":"string","uniqueKey":"user_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"user_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"user_id","typeLabel":"string | null"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"Not Found - The intern is not in the selected workspace or is not visible to the key (a member key without an admin role sees only interns its member created or interns in workspaces they administer), the secret does not exist in the selected scope, or the caller is outside the intern programme.","exampleType":"examples"},"006b47d3-4ed0-4b28-85be-67e3254ce09b":{"content":{"application/json":{"examples":{"body-timed-out":{"title":"body-timed-out","value":{"error":{"code":408,"message":"Request body timed out"}}},"route-deadline":{"title":"route-deadline","value":{"error":{"code":408,"message":"Vault request timed out"}}}},"schema":{"description":"Request Timeout - Operation exceeded time limit","example":{"error":{"code":408,"message":"Operation timed out. Please try again later."}},"properties":{"error":{"description":"Error data for RequestTimeoutResponse","example":{"code":408,"message":"Operation timed out. Please try again later."},"properties":{"code":{"type":"integer","isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"error.metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"error.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.metadata","typeLabel":"object | null"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"openrouter_metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"openrouter_metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"openrouter_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"openrouter_metadata","typeLabel":"object | null"},"user_id":{"oneOf":[{"type":"string","uniqueKey":"user_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"user_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"user_id","typeLabel":"string | null"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"Request Timeout - The route deadline passed before the request completed, or the request body stopped arriving.","exampleType":"examples"},"ec1b0d86-f0b4-414c-932e-33c92499a488":{"content":{"application/json":{"examples":{"rate-limited":{"title":"rate-limited","value":{"error":{"code":429,"message":"Too many vault requests"}}}},"schema":{"description":"Too Many Requests - Rate limit exceeded","example":{"error":{"code":429,"message":"Rate limit exceeded"}},"properties":{"error":{"description":"Error data for TooManyRequestsResponse","example":{"code":429,"message":"Rate limit exceeded"},"properties":{"code":{"type":"integer","isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"error.metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"error.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.metadata","typeLabel":"object | null"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"openrouter_metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"openrouter_metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"openrouter_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"openrouter_metadata","typeLabel":"object | null"},"user_id":{"oneOf":[{"type":"string","uniqueKey":"user_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"user_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"user_id","typeLabel":"string | null"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"Too Many Requests - The vault rate limit was reached.","exampleType":"examples"},"cb324632-98f7-4d99-b3f6-c10e916a85a3":{"content":{"application/json":{"examples":{"internal-error":{"title":"internal-error","value":{"error":{"code":500,"message":"Internal Server Error"}}}},"schema":{"description":"Internal Server Error - Unexpected server error","example":{"error":{"code":500,"message":"Internal Server Error"}},"properties":{"error":{"description":"Error data for InternalServerResponse","example":{"code":500,"message":"Internal Server Error"},"properties":{"code":{"type":"integer","isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"error.metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"error.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.metadata","typeLabel":"object | null"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"openrouter_metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"openrouter_metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"openrouter_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"openrouter_metadata","typeLabel":"object | null"},"user_id":{"oneOf":[{"type":"string","uniqueKey":"user_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"user_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"user_id","typeLabel":"string | null"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"Internal Server Error - Scope lookup failed.","exampleType":"examples"},"fb31f10c-ea63-473a-b5e1-ccd7fc84ffc4":{"content":{"application/json":{"examples":{"invalid-vault-response":{"title":"invalid-vault-response","value":{"error":{"code":502,"message":"Invalid vault response"}}},"vault-request-failed":{"title":"vault-request-failed","value":{"error":{"code":502,"message":"Vault request failed"}}}},"schema":{"description":"Bad Gateway - Provider/upstream API failure","example":{"error":{"code":502,"message":"Provider returned error"}},"properties":{"error":{"description":"Error data for BadGatewayResponse","example":{"code":502,"message":"Provider returned error"},"properties":{"code":{"type":"integer","isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"error.metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"error.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.metadata","typeLabel":"object | null"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"openrouter_metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"openrouter_metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"openrouter_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"openrouter_metadata","typeLabel":"object | null"},"user_id":{"oneOf":[{"type":"string","uniqueKey":"user_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"user_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"user_id","typeLabel":"string | null"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"Bad Gateway - The vault could not be reached or returned an unexpected response.","exampleType":"examples"},"9ca7b600-7da8-4afe-bc12-084f20e7fa2e":{"content":{"application/json":{"examples":{"vault-unavailable":{"title":"vault-unavailable","value":{"error":{"code":503,"message":"Vault service is unavailable"}}},"writes-disabled":{"title":"writes-disabled","value":{"error":{"code":503,"message":"Vault writes are not enabled"}}}},"schema":{"description":"Service Unavailable - Service temporarily unavailable","example":{"error":{"code":503,"message":"Service temporarily unavailable"}},"properties":{"error":{"description":"Error data for ServiceUnavailableResponse","example":{"code":503,"message":"Service temporarily unavailable"},"properties":{"code":{"type":"integer","isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"error.metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"error.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.metadata","typeLabel":"object | null"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"openrouter_metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"openrouter_metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"openrouter_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"openrouter_metadata","typeLabel":"object | null"},"user_id":{"oneOf":[{"type":"string","uniqueKey":"user_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"user_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"user_id","typeLabel":"string | null"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"Service Unavailable - Vault writes are disabled for the caller, or the vault is not configured.","exampleType":"examples"},"03f245f7-85d5-431e-99ef-278bcc7cc5be":{"content":{"application/json":{"examples":{"vault-timed-out":{"title":"vault-timed-out","value":{"error":{"code":504,"message":"Vault request timed out"}}}},"schema":{"description":"Gateway Timeout - Provider did not respond before the upstream deadline","example":{"error":{"code":504,"message":"The operation was aborted due to timeout"}},"properties":{"error":{"description":"Error data for GatewayTimeoutResponse","example":{"code":504,"message":"The operation was aborted due to timeout"},"properties":{"code":{"type":"integer","isRequired":true,"uniqueKey":"error.code","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"error.metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"error.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.metadata","typeLabel":"object | null"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"openrouter_metadata":{"oneOf":[{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.0.additionalProperties","typeLabel":"any"},"type":"object","uniqueKey":"openrouter_metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"oneOf":[{}],"uniqueKey":"openrouter_metadata.oneOf.1.additionalProperties","typeLabel":"any"},"type":"null","uniqueKey":"openrouter_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"openrouter_metadata","typeLabel":"object | null"},"user_id":{"oneOf":[{"type":"string","uniqueKey":"user_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"user_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"user_id","typeLabel":"string | null"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"description":"Gateway Timeout - The vault did not answer in time.","exampleType":"examples"}},"security":{"df414241-1f7b-4423-8a5e-82d6b327269d":{"apiKey":{"description":"API key as bearer token in Authorization header","scheme":"bearer","type":"http","scopes":[],"schemeName":"apiKey"}}},"servers":{"7075e944-05e2-4e86-8b6c-ac9eb4ffd9f1":{"description":"Production server","url":"https://openrouter.ai/api/v1","x-speakeasy-server-id":"production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"description":"API key as bearer token in Authorization header","scheme":"bearer","type":"http","scopes":[],"schemeName":"apiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key as bearer token in Authorization header","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"apiKey","name":"Authorization"}],"title":"apiKey"}]},"originalFileLocation":"openapi/openapi.yaml"},"subdomain":"openrouter-d02e98a0","siteName":"OpenRouter | Documentation","title":"List the connections an intern can use - OpenRouter | Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T21:37:10.455Z","originalFileLocation":"/api/api-reference/vault/list-the-connections-an-intern-can-use.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=\"dark\"}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=\"Lists the connections in scope for the intern, by the key of their card on the dashboard\u0026#x27;s Connections tab: github, slack, google, a catalog MCP server such as linear or notion, or mcp: for a custom MCP server. A connection is listed when it is stored, enabled, and not turned off or hidden for this intern, as the Connections tab lists it; whether its last test passed is not part of the rule. ori features add checks a feature\u0026#x27;s ori.requires.connections against this list. routing is the vault\u0026#x27;s routing table for the intern: the credentials it holds and what it would inject each for, from the same lookups the egress proxy picks a credential with, GitHub repository coverage read through the installation token and cached. routing_text is that table as the lines the intern reads in its instructions. Never credentials. Returns 404 for an intern the key cannot see. The scope is selected by the API key: workspace routes act on the key\u0026#x27;s active workspace and intern routes act on one intern inside that workspace. There is no default workspace and no fallback to another scope. Every vault route, including reads, requires access to the Intern API programme and returns 404 outside it. An intern\u0026#x27;s own API key is confined to that intern: it can always read the intern\u0026#x27;s secrets and effective secrets, writes to them follow the rules above, and every other intern and every workspace route answers 404. Requests on regional hostnames such as eu.openrouter.ai are refused. API key required.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OpenRouter | Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_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=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"List the connections an intern can use - OpenRouter | Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Lists the connections in scope for the intern, by the key of their card on the dashboard\u0026#x27;s Connections tab: github, slack, google, a catalog MCP server such as linear or notion, or mcp: for a custom MCP server. A connection is listed when it is stored, enabled, and not turned off or hidden for this intern, as the Connections tab lists it; whether its last test passed is not part of the rule. ori features add checks a feature\u0026#x27;s ori.requires.connections against this list. routing is the vault\u0026#x27;s routing table for the intern: the credentials it holds and what it would inject each for, from the same lookups the egress proxy picks a credential with, GitHub repository coverage read through the installation token and cached. routing_text is that table as the lines the intern reads in its instructions. Never credentials. Returns 404 for an intern the key cannot see. The scope is selected by the API key: workspace routes act on the key\u0026#x27;s active workspace and intern routes act on one intern inside that workspace. There is no default workspace and no fallback to another scope. Every vault route, including reads, requires access to the Intern API programme and returns 404 outside it. An intern\u0026#x27;s own API key is confined to that intern: it can always read the intern\u0026#x27;s secrets and effective secrets, writes to them follow the rules above, and every other intern and every workspace route answers 404. Requests on regional hostnames such as eu.openrouter.ai are refused. API key required.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OpenRouter | Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://openrouter.ai/docs/api/api-reference/vault/list-the-connections-an-intern-can-use\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://openrouter-d02e98a0.mintlify.app/_mintlify/api/og/v2?division=Vault\u0026amp;title=List+the+connections+an+intern+can+use\u0026amp;description=Lists+the+connections+in+scope+for+the+intern%2C+by+the+key+of+their+card+on+the+dashboard%27s+Connections+tab%3A+%60github%60%2C+%60slack%60%2C+%60google%60%2C+a+catalog+MCP+server+su\u0026amp;theme=dbe1bfd215f87f8a607a08b0\u0026amp;signature=7390e6fd6c11b1db06df77cda5134563fc48d0dcacff5e067911a03f1122142d\">\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=\"List the connections an intern can use - OpenRouter | Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Lists the connections in scope for the intern, by the key of their card on the dashboard\u0026#x27;s Connections tab: github, slack, google, a catalog MCP server such as linear or notion, or mcp: for a custom MCP server. A connection is listed when it is stored, enabled, and not turned off or hidden for this intern, as the Connections tab lists it; whether its last test passed is not part of the rule. ori features add checks a feature\u0026#x27;s ori.requires.connections against this list. routing is the vault\u0026#x27;s routing table for the intern: the credentials it holds and what it would inject each for, from the same lookups the egress proxy picks a credential with, GitHub repository coverage read through the installation token and cached. routing_text is that table as the lines the intern reads in its instructions. Never credentials. Returns 404 for an intern the key cannot see. The scope is selected by the API key: workspace routes act on the key\u0026#x27;s active workspace and intern routes act on one intern inside that workspace. There is no default workspace and no fallback to another scope. Every vault route, including reads, requires access to the Intern API programme and returns 404 outside it. An intern\u0026#x27;s own API key is confined to that intern: it can always read the intern\u0026#x27;s secrets and effective secrets, writes to them follow the rules above, and every other intern and every workspace route answers 404. Requests on regional hostnames such as eu.openrouter.ai are refused. API key required.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://openrouter-d02e98a0.mintlify.app/_mintlify/api/og/v2?division=Vault\u0026amp;title=List+the+connections+an+intern+can+use\u0026amp;description=Lists+the+connections+in+scope+for+the+intern%2C+by+the+key+of+their+card+on+the+dashboard%27s+Connections+tab%3A+%60github%60%2C+%60slack%60%2C+%60google%60%2C+a+catalog+MCP+server+su\u0026amp;theme=dbe1bfd215f87f8a607a08b0\u0026amp;signature=7390e6fd6c11b1db06df77cda5134563fc48d0dcacff5e067911a03f1122142d\">\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=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OpenRouter | Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7624F4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://openrouter.ai/docs/api/api-reference/vault/list-the-connections-an-intern-can-use\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api/api-reference/vault/list-the-connections-an-intern-can-use.md\">","siteName":"OpenRouter | Documentation","nav":{"global":null,"tabs":[{"tab":"Docs","icon":"book","pages":[{"title":"Docs","href":"/quickstart"}]},{"tab":"API Reference","icon":"code","groups":[{"group":"API Guides","icon":"code","pages":[{"title":"API Reference","icon":"book-open","sidebarTitle":"Overview","href":"/api_reference/overview"},{"title":"Streaming","icon":"bars-staggered","href":"/api_reference/streaming"},{"title":"Embeddings","icon":"draw-square","href":"/api_reference/embeddings"},{"title":"Limits","icon":"gauge-high","href":"/api_reference/limits"},{"title":"Authentication","icon":"lock","href":"/api_reference/authentication"},{"title":"Parameters","icon":"gear","href":"/api_reference/parameters"},{"title":"Errors and Debugging","icon":"triangle-exclamation","href":"/api_reference/errors-and-debugging"},{"group":"Responses API","icon":"reply","pages":[{"title":"Responses API","sidebarTitle":"Overview","icon":"compass","href":"/api_reference/responses/overview"},{"title":"Basic Usage","icon":"play","href":"/api_reference/responses/basic-usage"},{"title":"Reasoning","icon":"lightbulb","href":"/api_reference/responses/reasoning"},{"title":"Tool Calling","icon":"toolbox","href":"/api_reference/responses/tool-calling"},{"title":"Web Search","icon":"globe-pointer","href":"/api_reference/responses/web-search"},{"title":"Error Handling","icon":"triangle-exclamation","href":"/api_reference/responses/error-handling"}]}]},{"group":"Versioning","icon":"code-branch","pages":[{"title":"API Versioning","icon":"code-branch","href":"/api_reference/versioning"},{"title":"API Changelog","icon":"clock-rotate-left","href":"/changelog"}]},{"group":"API Reference","icon":"code","pages":[{"group":"Analytics","pages":[{"title":"Get user activity grouped by endpoint","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /activity","href":"/api/api-reference/analytics/get-user-activity-grouped-by-endpoint"},{"title":"Get available analytics metrics and dimensions","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /analytics/meta","href":"/api/api-reference/analytics/get-available-analytics-metrics-and-dimensions"},{"title":"Query analytics data","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /analytics/query","href":"/api/api-reference/analytics/query-analytics-data"}]},{"group":"alpha.decisions","pages":[{"title":"Submit a Decisions request","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /api/alpha/decisions","href":"/api/api-reference/alphadecisions/submit-a-decisions-request"}]},{"group":"alpha.extractions","pages":[{"title":"Submit an Extractions request","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /api/alpha/extractions","href":"/api/api-reference/alphaextractions/submit-an-extractions-request"}]},{"group":"TTS","pages":[{"title":"Create speech","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /audio/speech","href":"/api/api-reference/tts/create-speech"}]},{"group":"STT","pages":[{"title":"Create transcription","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /audio/transcriptions","href":"/api/api-reference/stt/create-transcription"}]},{"group":"OAuth","pages":[{"title":"Exchange authorization code for API key","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /auth/keys","href":"/api/api-reference/oauth/exchange-authorization-code-for-api-key"},{"title":"Create authorization code","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /auth/keys/code","href":"/api/api-reference/oauth/create-authorization-code"},{"title":"OpenRouter access token signing keys","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /oauth/jwks","href":"/api/api-reference/oauth/openrouter-access-token-signing-keys"},{"title":"Exchange a workload identity token","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /oauth/token","href":"/api/api-reference/oauth/exchange-a-workload-identity-token"}]},{"group":"Batch","pages":[{"title":"List batches","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /batches","href":"/api/api-reference/batch/list-batches"},{"title":"Create a batch","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /batches","href":"/api/api-reference/batch/create-a-batch"},{"title":"Get a batch","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /batches/{id}","href":"/api/api-reference/batch/get-a-batch"},{"title":"Delete a batch","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml delete /batches/{id}","href":"/api/api-reference/batch/delete-a-batch"}]},{"group":"Benchmarks","pages":[{"title":"List Benchmarks","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /benchmarks","href":"/api/api-reference/benchmarks/list-benchmarks"}]},{"group":"BYOK","pages":[{"title":"List BYOK provider credentials","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /byok","href":"/api/api-reference/byok/list-byok-provider-credentials"},{"title":"Create a BYOK provider credential","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /byok","href":"/api/api-reference/byok/create-a-byok-provider-credential"},{"title":"Get a BYOK provider credential","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /byok/{id}","href":"/api/api-reference/byok/get-a-byok-provider-credential"},{"title":"Delete a BYOK provider credential","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml delete /byok/{id}","href":"/api/api-reference/byok/delete-a-byok-provider-credential"},{"title":"Update a BYOK provider credential","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml patch /byok/{id}","href":"/api/api-reference/byok/update-a-byok-provider-credential"}]},{"group":"Chat","pages":[{"title":"Create a chat completion","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /chat/completions","href":"/api/api-reference/chat/create-a-chat-completion"}]},{"group":"Classifications","pages":[{"title":"Task classification market share","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /classifications/task","href":"/api/api-reference/classifications/task-classification-market-share"}]},{"group":"Containers","pages":[{"title":"List container files","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /containers/{container_id}/files","href":"/api/api-reference/containers/list-container-files"},{"title":"Retrieve a container file","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /containers/{container_id}/files/{file_id}","href":"/api/api-reference/containers/retrieve-a-container-file"},{"title":"Download container file content","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /containers/{container_id}/files/{file_id}/content","href":"/api/api-reference/containers/download-container-file-content"},{"title":"Promote a container file into workspace documents","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /containers/{container_id}/files/{file_id}/promote","href":"/api/api-reference/containers/promote-a-container-file-into-workspace-documents"}]},{"group":"Credits","pages":[{"title":"Get remaining credits","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /credits","href":"/api/api-reference/credits/get-remaining-credits"},{"title":"Deprecated Coinbase Commerce charge endpoint","deprecated":true,"version":null,"openapi":"/openapi/openapi.yaml post /credits/coinbase","href":"/api/api-reference/credits/deprecated-coinbase-commerce-charge-endpoint"}]},{"group":"Datasets","pages":[{"title":"Top apps by token usage","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /datasets/app-rankings","href":"/api/api-reference/datasets/top-apps-by-token-usage"},{"title":"Daily token totals for top 50 models","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /datasets/rankings-daily","href":"/api/api-reference/datasets/daily-token-totals-for-top-50-models"},{"title":"Cost per session by harness and model","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /datasets/session-cost","href":"/api/api-reference/datasets/cost-per-session-by-harness-and-model"}]},{"group":"Embeddings","pages":[{"title":"Submit an embedding request","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /embeddings","href":"/api/api-reference/embeddings/submit-an-embedding-request"},{"title":"List all embeddings models","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /embeddings/models","href":"/api/api-reference/embeddings/list-all-embeddings-models"}]},{"group":"Endpoints","pages":[{"title":"Preview the impact of ZDR on the available endpoints","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /endpoints/zdr","href":"/api/api-reference/endpoints/preview-the-impact-of-zdr-on-the-available-endpoints"},{"title":"List all endpoints for a model","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /models/{author}/{slug}/endpoints","href":"/api/api-reference/endpoints/list-all-endpoints-for-a-model"}]},{"group":"External Users","pages":[{"title":"List registered external users","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /external-users","href":"/api/api-reference/external-users/list-registered-external-users"},{"title":"Register an external user","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /external-users","href":"/api/api-reference/external-users/register-an-external-user"},{"title":"Get a registered external user","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /external-users/{user}","href":"/api/api-reference/external-users/get-a-registered-external-user"},{"title":"Deactivate a registered external user","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml delete /external-users/{user}","href":"/api/api-reference/external-users/deactivate-a-registered-external-user"},{"title":"Update a registered external user","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml patch /external-users/{user}","href":"/api/api-reference/external-users/update-a-registered-external-user"}]},{"group":"Files","pages":[{"title":"List files","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /files","href":"/api/api-reference/files/list-files"},{"title":"Upload a file","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /files","href":"/api/api-reference/files/upload-a-file"},{"title":"Get file metadata","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /files/{file_id}","href":"/api/api-reference/files/get-file-metadata"},{"title":"Delete a file","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml delete /files/{file_id}","href":"/api/api-reference/files/delete-a-file"},{"title":"Download file content","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /files/{file_id}/content","href":"/api/api-reference/files/download-file-content"}]},{"group":"Generations","pages":[{"title":"Get request \u0026 usage metadata for a generation","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /generation","href":"/api/api-reference/generations/get-request-\u0026-usage-metadata-for-a-generation"},{"title":"Get stored prompt, completion, and error content for a generation","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /generation/content","href":"/api/api-reference/generations/get-stored-prompt-completion-and-error-content-for-a-generation"},{"title":"Submit feedback for a generation","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /generation/feedback","href":"/api/api-reference/generations/submit-feedback-for-a-generation"}]},{"group":"Guardrails","pages":[{"title":"List guardrails","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /guardrails","href":"/api/api-reference/guardrails/list-guardrails"},{"title":"Create a guardrail","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /guardrails","href":"/api/api-reference/guardrails/create-a-guardrail"},{"title":"Get a guardrail","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /guardrails/{id}","href":"/api/api-reference/guardrails/get-a-guardrail"},{"title":"Delete a guardrail","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml delete /guardrails/{id}","href":"/api/api-reference/guardrails/delete-a-guardrail"},{"title":"Update a guardrail","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml patch /guardrails/{id}","href":"/api/api-reference/guardrails/update-a-guardrail"},{"title":"List key assignments for a guardrail","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /guardrails/{id}/assignments/keys","href":"/api/api-reference/guardrails/list-key-assignments-for-a-guardrail"},{"title":"Bulk assign keys to a guardrail","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /guardrails/{id}/assignments/keys","href":"/api/api-reference/guardrails/bulk-assign-keys-to-a-guardrail"},{"title":"Bulk unassign keys from a guardrail","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /guardrails/{id}/assignments/keys/remove","href":"/api/api-reference/guardrails/bulk-unassign-keys-from-a-guardrail"},{"title":"List member assignments for a guardrail","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /guardrails/{id}/assignments/members","href":"/api/api-reference/guardrails/list-member-assignments-for-a-guardrail"},{"title":"Bulk assign members to a guardrail","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /guardrails/{id}/assignments/members","href":"/api/api-reference/guardrails/bulk-assign-members-to-a-guardrail"},{"title":"Bulk unassign members from a guardrail","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /guardrails/{id}/assignments/members/remove","href":"/api/api-reference/guardrails/bulk-unassign-members-from-a-guardrail"},{"title":"List all key assignments","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /guardrails/assignments/keys","href":"/api/api-reference/guardrails/list-all-key-assignments"},{"title":"List all member assignments","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /guardrails/assignments/members","href":"/api/api-reference/guardrails/list-all-member-assignments"}]},{"group":"Images","pages":[{"title":"Generate an image","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /images","href":"/api/api-reference/images/generate-an-image"},{"title":"List image generation models","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /images/models","href":"/api/api-reference/images/list-image-generation-models"},{"title":"List endpoints for an image model","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /images/models/{author}/{slug}/endpoints","href":"/api/api-reference/images/list-endpoints-for-an-image-model"}]},{"group":"API Keys","pages":[{"title":"Get current API key","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /key","href":"/api/api-reference/api-keys/get-current-api-key"},{"title":"List API keys","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /keys","href":"/api/api-reference/api-keys/list-api-keys"},{"title":"Create a new API key","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /keys","href":"/api/api-reference/api-keys/create-a-new-api-key"},{"title":"Get a single API key","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /keys/{hash}","href":"/api/api-reference/api-keys/get-a-single-api-key"},{"title":"Delete an API key","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml delete /keys/{hash}","href":"/api/api-reference/api-keys/delete-an-api-key"},{"title":"Update an API key","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml patch /keys/{hash}","href":"/api/api-reference/api-keys/update-an-api-key"}]},{"group":"Anthropic Messages","pages":[{"title":"Create a message","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /messages","href":"/api/api-reference/anthropic-messages/create-a-message"}]},{"group":"Models","pages":[{"title":"Get a model by its slug","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /model/{author}/{slug}","href":"/api/api-reference/models/get-a-model-by-its-slug"},{"title":"List all models and their properties","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /models","href":"/api/api-reference/models/list-all-models-and-their-properties"},{"title":"Get total count of available models","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /models/count","href":"/api/api-reference/models/get-total-count-of-available-models"},{"title":"List models filtered by user provider preferences, privacy settings, and guardrails","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /models/user","href":"/api/api-reference/models/list-models-filtered-by-user-provider-preferences-privacy-settings-and-guardrails"}]},{"group":"Observability","pages":[{"title":"List observability destinations","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /observability/destinations","href":"/api/api-reference/observability/list-observability-destinations"},{"title":"Create an observability destination","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /observability/destinations","href":"/api/api-reference/observability/create-an-observability-destination"},{"title":"Get an observability destination","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /observability/destinations/{id}","href":"/api/api-reference/observability/get-an-observability-destination"},{"title":"Delete an observability destination","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml delete /observability/destinations/{id}","href":"/api/api-reference/observability/delete-an-observability-destination"},{"title":"Update an observability destination","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml patch /observability/destinations/{id}","href":"/api/api-reference/observability/update-an-observability-destination"}]},{"group":"Organization","pages":[{"title":"List organization members","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /organization/members","href":"/api/api-reference/organization/list-organization-members"},{"title":"Get organization settings","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /organization/settings","href":"/api/api-reference/organization/get-organization-settings"},{"title":"Update organization settings","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml patch /organization/settings","href":"/api/api-reference/organization/update-organization-settings"}]},{"group":"Presets","pages":[{"title":"List presets","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /presets","href":"/api/api-reference/presets/list-presets"},{"title":"Get a preset","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /presets/{slug}","href":"/api/api-reference/presets/get-a-preset"},{"title":"Create a preset from a chat-completions request body","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /presets/{slug}/chat/completions","href":"/api/api-reference/presets/create-a-preset-from-a-chat-completions-request-body"},{"title":"Create a preset from a messages request body","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /presets/{slug}/messages","href":"/api/api-reference/presets/create-a-preset-from-a-messages-request-body"},{"title":"Create a preset from a responses request body","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /presets/{slug}/responses","href":"/api/api-reference/presets/create-a-preset-from-a-responses-request-body"},{"title":"List versions of a preset","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /presets/{slug}/versions","href":"/api/api-reference/presets/list-versions-of-a-preset"},{"title":"Get a specific version of a preset","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /presets/{slug}/versions/{version}","href":"/api/api-reference/presets/get-a-specific-version-of-a-preset"}]},{"group":"Private Endpoints","pages":[{"title":"List private endpoints","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /private-endpoints","href":"/api/api-reference/private-endpoints/list-private-endpoints"},{"title":"Create a private endpoint","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /private-endpoints","href":"/api/api-reference/private-endpoints/create-a-private-endpoint"},{"title":"Get a private endpoint","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /private-endpoints/{id}","href":"/api/api-reference/private-endpoints/get-a-private-endpoint"},{"title":"Delete a private endpoint","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml delete /private-endpoints/{id}","href":"/api/api-reference/private-endpoints/delete-a-private-endpoint"},{"title":"Update a private endpoint","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml patch /private-endpoints/{id}","href":"/api/api-reference/private-endpoints/update-a-private-endpoint"},{"title":"Activate a validated private endpoint","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /private-endpoints/{id}/activate","href":"/api/api-reference/private-endpoints/activate-a-validated-private-endpoint"},{"title":"Disable a private endpoint","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /private-endpoints/{id}/disable","href":"/api/api-reference/private-endpoints/disable-a-private-endpoint"},{"title":"Enable a private endpoint","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /private-endpoints/{id}/enable","href":"/api/api-reference/private-endpoints/enable-a-private-endpoint"},{"title":"Validate a draft private endpoint","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /private-endpoints/{id}/validate","href":"/api/api-reference/private-endpoints/validate-a-draft-private-endpoint"}]},{"group":"Private Providers","pages":[{"title":"List private providers","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /private-providers","href":"/api/api-reference/private-providers/list-private-providers"},{"title":"Create a private provider","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /private-providers","href":"/api/api-reference/private-providers/create-a-private-provider"},{"title":"Get a private provider","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /private-providers/{slug}","href":"/api/api-reference/private-providers/get-a-private-provider"},{"title":"Delete a private provider","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml delete /private-providers/{slug}","href":"/api/api-reference/private-providers/delete-a-private-provider"},{"title":"Update a private provider","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml patch /private-providers/{slug}","href":"/api/api-reference/private-providers/update-a-private-provider"}]},{"group":"Providers","pages":[{"title":"List all providers","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /providers","href":"/api/api-reference/providers/list-all-providers"}]},{"group":"Rerank","pages":[{"title":"Submit a rerank request","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /rerank","href":"/api/api-reference/rerank/submit-a-rerank-request"}]},{"group":"Responses","pages":[{"title":"Create a response","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /responses","href":"/api/api-reference/responses/create-a-response"}]},{"group":"SCIM","pages":[{"title":"List SCIM group mappings","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /scim/group-mappings","href":"/api/api-reference/scim/list-scim-group-mappings"},{"title":"Create a SCIM group mapping","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /scim/group-mappings","href":"/api/api-reference/scim/create-a-scim-group-mapping"},{"title":"Get a SCIM group mapping","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /scim/group-mappings/{id}","href":"/api/api-reference/scim/get-a-scim-group-mapping"},{"title":"Delete a SCIM group mapping","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml delete /scim/group-mappings/{id}","href":"/api/api-reference/scim/delete-a-scim-group-mapping"},{"title":"Update a SCIM group mapping","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml patch /scim/group-mappings/{id}","href":"/api/api-reference/scim/update-a-scim-group-mapping"},{"title":"List SCIM groups","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /scim/groups","href":"/api/api-reference/scim/list-scim-groups"},{"title":"Start a SCIM directory sync","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /scim/sync-jobs","href":"/api/api-reference/scim/start-a-scim-directory-sync"},{"title":"Get SCIM directory sync status","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /scim/sync-jobs/{id}","href":"/api/api-reference/scim/get-scim-directory-sync-status"}]},{"group":"SystemOne","pages":[{"title":"Submit a System One request","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /systemone","href":"/api/api-reference/systemone/submit-a-system-one-request"}]},{"group":"Tools","pages":[{"title":"List server tools","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /tools","href":"/api/api-reference/tools/list-server-tools"},{"title":"Get a server tool","description":"One server tool by canonical name or any accepted alias, with the models that run it natively.","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /tools/{name}","href":"/api/api-reference/tools/get-a-server-tool"}]},{"group":"Vault","pages":[{"title":"List the connections an intern can use","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /vault/interns/{internId}/connections","href":"/api/api-reference/vault/list-the-connections-an-intern-can-use"},{"title":"List the secrets an intern receives","description":"Lists, one entry per name, the secret the intern's outbound requests receive: its own secrets, secrets from an attached vault, and workspace secrets, including ones stored before workspace-scoped storage. Where several vaults hold a name, the entry is the one that wins, in the order intern, attached, workspace. The same resolution decides what outbound requests receive, so this list and the intern's requests agree. `scope` says which vault the entry comes from. Responses carry metadata only, never values. Results are ordered by name and paginated with `limit` and `offset`. Returns 404 when the intern's attached vault is no longer available, since the intern then receives no secrets. The scope is selected by the API key: workspace routes act on the key's active workspace and intern routes act on one intern inside that workspace. There is no default workspace and no fallback to another scope. Every vault route, including reads, requires access to the Intern API programme and returns 404 outside it. An intern's own API key is confined to that intern: it can always read the intern's secrets and effective secrets, writes to them follow the rules above, and every other intern and every workspace route answers 404. Requests on regional hostnames such as `eu.openrouter.ai` are refused. [API key](/docs/api-reference/authentication) required.","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /vault/interns/{internId}/effective-secrets","href":"/api/api-reference/vault/list-the-secrets-an-intern-receives"},{"title":"List intern secrets","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /vault/interns/{internId}/secrets","href":"/api/api-reference/vault/list-intern-secrets"},{"title":"Store an intern secret","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml put /vault/interns/{internId}/secrets/{name}","href":"/api/api-reference/vault/store-an-intern-secret"},{"title":"Delete an intern secret","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml delete /vault/interns/{internId}/secrets/{name}","href":"/api/api-reference/vault/delete-an-intern-secret"},{"title":"Copy workspace secrets to an intern","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /vault/interns/{internId}/secrets/copy","href":"/api/api-reference/vault/copy-workspace-secrets-to-an-intern"},{"title":"List workspace secrets","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /vault/secrets","href":"/api/api-reference/vault/list-workspace-secrets"},{"title":"Store a workspace secret","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml put /vault/secrets/{name}","href":"/api/api-reference/vault/store-a-workspace-secret"},{"title":"Delete a workspace secret","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml delete /vault/secrets/{name}","href":"/api/api-reference/vault/delete-a-workspace-secret"}]},{"group":"Video Generation","pages":[{"title":"Submit a video generation request","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /videos","href":"/api/api-reference/video-generation/submit-a-video-generation-request"},{"title":"Poll video generation status","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /videos/{jobId}","href":"/api/api-reference/video-generation/poll-video-generation-status"},{"title":"Download generated video content","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /videos/{jobId}/content","href":"/api/api-reference/video-generation/download-generated-video-content"},{"title":"List all video generation models","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /videos/models","href":"/api/api-reference/video-generation/list-all-video-generation-models"}]},{"group":"Workspaces","pages":[{"title":"List workspaces","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /workspaces","href":"/api/api-reference/workspaces/list-workspaces"},{"title":"Create a workspace","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /workspaces","href":"/api/api-reference/workspaces/create-a-workspace"},{"title":"Get a workspace","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /workspaces/{id}","href":"/api/api-reference/workspaces/get-a-workspace"},{"title":"Delete a workspace","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml delete /workspaces/{id}","href":"/api/api-reference/workspaces/delete-a-workspace"},{"title":"Update a workspace","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml patch /workspaces/{id}","href":"/api/api-reference/workspaces/update-a-workspace"},{"title":"List workspace members","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /workspaces/{id}/members","href":"/api/api-reference/workspaces/list-workspace-members"},{"title":"Bulk add members to a workspace","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /workspaces/{id}/members/add","href":"/api/api-reference/workspaces/bulk-add-members-to-a-workspace"},{"title":"Bulk remove members from a workspace","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml post /workspaces/{id}/members/remove","href":"/api/api-reference/workspaces/bulk-remove-members-from-a-workspace"},{"title":"List workspace budgets","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /workspaces/{workspace_ref}/budgets","href":"/api/api-reference/workspaces/list-workspace-budgets"},{"title":"Get a workspace budget","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml get /workspaces/{workspace_ref}/budgets/{interval}","href":"/api/api-reference/workspaces/get-a-workspace-budget"},{"title":"Create or update a workspace budget","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml put /workspaces/{workspace_ref}/budgets/{interval}","href":"/api/api-reference/workspaces/create-or-update-a-workspace-budget"},{"title":"Delete a workspace budget","deprecated":null,"version":null,"openapi":"/openapi/openapi.yaml delete /workspaces/{workspace_ref}/budgets/{interval}","href":"/api/api-reference/workspaces/delete-a-workspace-budget"}]}]}]},{"tab":"Client SDKs","icon":"cube","pages":[{"title":"Client SDKs","href":"/client-sdks/overview"}]},{"tab":"Agent SDK","icon":"cube","pages":[{"title":"Agent SDK","href":"/agent-sdk/overview"}]},{"tab":"Cookbook","icon":"book-open","pages":[{"title":"Cookbook","href":"/cookbook/get-started/quickstart"}]}]},"basePath":"","title":"List the connections an intern can use - OpenRouter | Documentation","buildId":"dpl_DQCMP4mismmBj3AFK7YZqNhrtLNq","deploymentId":"dpl_DQCMP4mismmBj3AFK7YZqNhrtLNq","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Dub5uFbX.js","utils-BAOmmv1r.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-Cfvfuq3w.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Chp3aFWD.js","snippetPresets-mdHEOVGp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-BRlO2pcM.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CrgNI3V9.js","shallow-Dl286uHn.js","getApiPlaygroundDisplay-YPKheyKd.js","CodeSnippet-BdD-lURy.js","CodeSnippets-BSggiSf7.js","Page-DZmn3mFl.js","getPastedJson-bQHv51S7.js","icon-SCSCTtsH.js","MethodPill-GnU2wo5s.js","DuplicateIcon-BM7jzGa_.js","createIcon-atdRs-Wh.js","DynamicMarkdown-B95U9rYS.js","SectionHeading-CvCxtB39.js","axios-vUo_bRtp.js","Markdown-CBJtw_nx.js","clsx-C_advUgl.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-Dpla8_R7.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BoWSGi0C.js"]}