Create and manage a personal API key for coding tools and your own projects.
A personal API key lets you reach your workspace’s models from outside Langdock, so you can use them in coding tools like Claude Code, GitHub Copilot, or Codex, or in a project of your own. The key authenticates as you and counts towards your usage budget. Your admin can also allow Workflow Write API and Scheduled Tasks API on personal keys.
Your admin has to give you access before API keys appears in your account settings. This access controls whether the page appears. Personal API usage counts against your effective personal budget and the workspace spend limit. If your effective personal budget is exhausted, personal API requests return an error instead of using a fallback model. If the workspace spend limit is reached, personal API requests return an error instead of using a fallback model. Your workspace admin must raise the limit or set it to Unlimited, or you must wait for the current billing period to reset.
Click Create API key. Give the key a name that tells you where it’s used, so you know which tool to update later, and choose when it expires.
3
Create and copy the key
Click Create API key, then copy the key and store it somewhere safe. Langdock shows it once and never again.
Never share a personal API key. It authenticates as you and spends your budget, so anyone who has it is working as you. Use a workspace API key for shared applications and automations, and see API key best practices for storing keys safely.
The page shows shared usage progress as a percentage, separate from Personal API spend this month. Cloud shows Shared extra usage. BYOK and dedicated workspaces show Shared included usage this week and Shared extra usage, each with its own reset date. If your individual limit has nothing left, personal API requests return an error instead of using a fallback model. You can request a higher limit when usage requests are enabled, or ask your workspace admin. If the workspace has reached its spend limit, increasing your individual limit does not restore API access. Your workspace admin must raise the workspace limit or set it to Unlimited, or you must wait for the current billing period to reset.
Connect your tools walks you through the setup for Claude Code, Claude Desktop, OpenCode, Codex, GitHub Copilot, and direct API calls with cURL. You can also connect Cursor with the same key. Pick an available model and the examples update to match, then follow the steps for your tool.The guides below match that setup. See the Langdock Completion APIs for an overview of the available APIs. Replace YOUR_API_KEY with your key and your-model-id with an ID from Available models. Use eu or us to match your workspace’s model region. For an OpenAI compatible model in the global region, use /openai/global/v1 and list models at /openai/global/v1/models. For an OpenAI compatible model hosted in Switzerland, use /openai/ch/v1 and list models at /openai/ch/v1/models. On dedicated deployments the base URL starts with your deployment origin instead of https://api.langdock.com.
Claude Code
Claude Desktop
Cursor
Codex
GitHub Copilot
OpenCode
API / cURL
Claude Code uses the Anthropic Messages API through Langdock.
Add this to ~/.claude/settings.json (on Windows: %USERPROFILE%\.claude\settings.json), and create the file if it does not exist. Replace the model IDs with ones from the previous step, and make sure ANTHROPIC_API_KEY is not set:
Claude Code speaks the Anthropic Messages API, which Langdock serves at the base URL above. All requests are now routed through your workspace.
Claude Desktop can run chats on Langdock models through third-party inference.
1
Enable Developer Mode
In Claude Desktop, open Help → Troubleshooting → Enable Developer Mode.
2
Configure the gateway
Open Developer → Configure third-party inference. Set Inference provider to Gateway. Under Gateway credentials, enter:
Gateway base URL: https://api.langdock.com/anthropic/euGateway API key: YOUR_API_KEYGateway auth scheme: bearerCredential kind: Static API key
3
Test and apply
Keep Model discovery enabled, then click Test connection and Test model discovery. Claude discovers the Anthropic models available in your workspace. Click Save Changes, then Apply Changes. Claude relaunches; select Continue with Gateway if prompted.
Cursor has no built-in card under Connect your tools yet. Point its OpenAI provider at Langdock:
1
Open model settings
In Cursor, open Cursor Settings > Models.
2
Add your key and base URL
Paste your personal API key into the OpenAI provider field and click Save. Turn on Override OpenAI Base URL and enter this URL with /v1 and no trailing slash:
https://api.langdock.com/openai/eu/v1
3
Add a workspace model
Enter the exact ID of a model from Available models, then click Add Custom Model. Select that model for chat.
Custom API keys in Cursor cover chat models only. Tab completion keeps using Cursor’s built-in models. Agent mode fails with an HTTP 400 error, because Langdock’s Chat Completions endpoint accepts only tools of type function. For agentic coding, use Claude Code, Codex, GitHub Copilot, or OpenCode instead.
Or open the Codex / ChatGPT desktop app. This file stores your key on this computer. If you share the machine, revoke the key in Langdock and create a new one.
GitHub Copilot uses Langdock’s OpenAI Chat Completions endpoint. Copilot Chat in VS Code, agent mode, and Copilot CLI need an OpenAI-compatible model that supports tools.
1
Add a custom endpoint in VS Code
In VS Code, open the Command Palette and run Chat: Manage Language Models. Choose Add Models → Custom Endpoint. Use Langdock as the group name, paste your API key, and select Chat Completions.
2
Add the provider
VS Code opens chatLanguageModels.json. Add this provider, or merge it with providers you already have, save, then pick the model in the Chat picker:
This routes Copilot Chat, agent mode, and Copilot CLI through your workspace. Inline ghost-text completions still use GitHub. Copilot Business or Enterprise organizations may need an admin to enable the Bring Your Own Language Model Key policy.
OpenCode uses the Anthropic-compatible endpoint through Langdock.
1
Add your config
Add this to opencode.json in your project, or to ~/.config/opencode/opencode.json (on Windows: %USERPROFILE%\.config\opencode\opencode.json). You can list more workspace models under models:
Use any OpenAI- or Anthropic-compatible SDK by pointing its base URL at the URLs above. See the Chat Completions, Responses, and Anthropic Messages API docs for full request shapes.
Your key works with the OpenAI compatible Chat Completions, Responses, and Image Generations APIs, the Anthropic Messages API, the Google Completion API, and the Mistral Completion API. Which of them you can call depends on the models configured for your workspace. Available models shows what you can pick for the built-in OpenAI and Anthropic guides, and for Google and Mistral you follow the API documentation instead.Completion is included on every personal API key. Your admin can enable more scopes, including Agents, Skills, Prompts, Embedding, Knowledge Folder, Integrations, and Workflows. User Management, Audit Logs, Usage Export, Compliance, and Governance still need a workspace API key. If your admin allows Scheduled Tasks API, a new key can create tasks that belong to you and show up in Scheduled. If your admin allows Workflow Write API, a new key can create, update, and publish workflows you can edit. Existing keys keep the scopes they were created with. Workflow Deletion API cannot be granted on a personal key.A workspace API key can also receive Meetings Read API when General access is on for Meetings. That key can read notes and transcripts of meetings in folders shared with the whole workspace.
Rotate key replaces the secret and shows the new one once. The old one stops working immediately, so update every connected tool right away.
Revoke key switches the key off for good.
Your workspace admin can revoke your keys as well. They also stop working if your admin takes away your access to personal API keys or deactivates your workspace membership.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Docs","colors":{"primary":"#4469FC","light":"#ECF0FF","dark":"#0D001D"},"logo":{"light":"https://mintcdn.com/langdock-34/URgvNwU7CYGZq8R7/logo/light.svg?fit=max\u0026auto=format\u0026n=URgvNwU7CYGZq8R7\u0026q=85\u0026s=594b4bd597e2629fb1a7dccfae6aa1c4","dark":"https://mintcdn.com/langdock-34/URgvNwU7CYGZq8R7/logo/dark.svg?fit=max\u0026auto=format\u0026n=URgvNwU7CYGZq8R7\u0026q=85\u0026s=d063d52fb4d331afb82adad972214673"},"favicon":"https://mintcdn.com/langdock-34/KbxhVmfYOcTup72x/favicon.png?fit=max\u0026auto=format\u0026n=KbxhVmfYOcTup72x\u0026q=85\u0026s=e12cd6cccfe5c94bf4ae6ea4fba7959c","background":{"color":{"dark":"#090014"}},"navbar":{"primary":{"type":"button","label":"Back to app","href":"https://app.langdock.com"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/langdock"}},"errors":{"404":{"redirect":true}},"contextual":{"options":["copy","view","mcp","cursor","vscode",{"title":"Ask Langdock","description":"Ask Langdock about the current page","icon":"/favicon.png","href":{"base":"https://app.langdock.com/chat","query":[{"key":"q","value":"Read from https://docs.langdock.com$path.md so I can ask questions about it."},{"key":"sendPrompt","value":"true"}]}}],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Changelog","icon":"newspaper","href":"https://www.langdock.com/changelog"},{"anchor":"Status","icon":"signal-bars","href":"https://status.langdock.com/"},{"anchor":"Support","icon":"messages-question","href":"https://www.langdock.com/contact-us"}]},"languages":[{"language":"en","default":true,"href":"en/using-langdock/get-started/introduction"},{"language":"de","href":"de/using-langdock/get-started/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"langdock-34","hasAudioNarration":false,"actualSubdomain":"langdock-34","customDomains":["docs.langdock.com"],"gitSource":{"type":"github","owner":"langdock","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"DISABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af23af19200cc38e6eac639","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"en","tag":"Using Langdock","count":152},{"language":"de","tag":"Langdock nutzen","count":152},{"language":"en","tag":"Developer","count":141},{"language":"de","tag":"Entwickler","count":141},{"language":"en","tag":"Admin","count":111},{"language":"de","tag":"Admin","count":111},{"language":"en","tag":"Manage Integrations","count":43},{"language":"de","tag":"Integrationen verwalten","count":43},{"language":"en","tag":"Guides","count":40},{"language":"de","tag":"Anleitungen","count":40},{"language":"en","tag":"Billing API","count":36},{"language":"de","tag":"Billing API","count":36},{"language":"en","tag":"Workflows","count":28},{"language":"de","tag":"Workflows","count":28},{"language":"en","tag":"Integrations","count":19},{"language":"de","tag":"Integrationen","count":19},{"language":"en","tag":"Node Types","count":18},{"language":"de","tag":"Node Types","count":18},{"language":"en","tag":"Integration Setup Guides","count":17},{"language":"de","tag":"Integrations-Setup-Anleitungen","count":17}]},"assistantConfig":{"deflection":{"enabled":false}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"en/using-langdock/account/personal-api-keys","slug":"/en/using-langdock/account/personal-api-keys","pageMetadata":{"title":"Personal API keys","description":"Create and manage a personal API key for coding tools and your own projects.","keywords":["personal api keys","api","coding tools","claude code","github copilot","codex","opencode","cursor","curl"],"href":"/en/using-langdock/account/personal-api-keys"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Create and manage a personal API key for coding tools and your own projects.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,Info,OptimizedImage,Step,Steps,Tab,Tabs,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`A personal API key lets you reach your workspace’s models from outside Langdock, so you can use them in coding tools like Claude Code, GitHub Copilot, or Codex, or in a project of your own. The key authenticates as you and counts towards your usage budget. Your admin can also allow `,_jsx(_components.strong,{children:`Workflow Write API`}),` and `,_jsx(_components.strong,{children:`Scheduled Tasks API`}),` on personal keys.`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_keys_account1.png?fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=5da3082006c77918229758b68f5d95e6`,alt:`API keys section in account settings showing shared usage progress as percentages and personal API spend this month`,style:{borderRadius:`6px`},\"data-og-width\":`2430`,width:`2430`,\"data-og-height\":`868`,height:`868`,\"data-path\":`images/personal_api_keys_account1.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_keys_account1.png?w=280\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=5f5a466ad3da9d67d65445ed9f8d07cd 280w, https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_keys_account1.png?w=560\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=49d33e997916fed29cf8aafb853961bb 560w, https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_keys_account1.png?w=840\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=a205c63d721624b541803683bc1eeb19 840w, https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_keys_account1.png?w=1100\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=c85d553fd6d2df0c10067c19ce14a999 1100w, https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_keys_account1.png?w=1650\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=7d4824f7efa0eb221ed91d07bf096c1f 1650w, https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_keys_account1.png?w=2500\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=69b1ebbec322b78c445237e99d09709d 2500w`})}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Your admin has to give you access before `,_jsx(_components.strong,{children:`API keys`}),` appears in your account settings. This access controls whether the page appears. Personal API usage counts against your effective personal budget and the workspace spend limit. If your effective personal budget is exhausted, personal API requests return an error instead of using a fallback model. If the workspace spend limit is reached, personal API requests return an error instead of using a fallback model. Your workspace admin must raise the limit or set it to `,_jsx(_components.strong,{children:`Unlimited`}),`, or you must wait for the current billing period to reset.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-personal-api-key`,children:`Create a personal API key`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open API keys`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.a,{href:`https://app.langdock.com/settings/account/api-keys`,children:`Settings > Account > API keys`}),`.`]})}),_jsxs(Step,{title:`Enter the key details`,children:[_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_key_account2.png?fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=e55b3e9406dc9eb13202ca9d81229b12`,alt:`Your API keys section with the Create API key button`,style:{borderRadius:`6px`},\"data-og-width\":`2304`,width:`2304`,\"data-og-height\":`804`,height:`804`,\"data-path\":`images/personal_api_key_account2.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_key_account2.png?w=280\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=aab0bd3745c741d6eb00ffacc951ad4d 280w, https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_key_account2.png?w=560\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=78d6ceda05ea05569b0d0a2b90002af6 560w, https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_key_account2.png?w=840\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=48c93cdaa525605682804fc12694665a 840w, https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_key_account2.png?w=1100\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=fc667354102a9f0b9083fe51e6819acb 1100w, https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_key_account2.png?w=1650\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=72e6631210c393815b21f1a94ed08df2 1650w, https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_key_account2.png?w=2500\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=ebbb71d2e58aaf90bef52be2f4705953 2500w`})}),_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Create API key`}),`. Give the key a name that tells you where it’s used, so you know which tool to update later, and choose when it expires.`]})]}),_jsxs(Step,{title:`Create and copy the key`,children:[_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_key_account3.png?fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=7a67fbad0c6774d82c356d2767801935`,alt:`Create a new API key dialog with fields for name and expiry and a summary of what the key can do`,style:{borderRadius:`6px`},\"data-og-width\":`2308`,width:`2308`,\"data-og-height\":`1320`,height:`1320`,\"data-path\":`images/personal_api_key_account3.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_key_account3.png?w=280\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=aa9a9cb3a02162bb5758ea9625bb0dd1 280w, https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_key_account3.png?w=560\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=516d5bbd92b363a2e192b3affe52a288 560w, https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_key_account3.png?w=840\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=350cf70361b41a519cde0380e35ffd75 840w, https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_key_account3.png?w=1100\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=42f125e0bd919444eacc9d6c3d7fd0f9 1100w, https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_key_account3.png?w=1650\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=7a8be9c3d7a065a36c341d10424e9977 1650w, https://mintcdn.com/langdock-34/9Y2RQ5qliRYBiJPG/images/personal_api_key_account3.png?w=2500\u0026fit=max\u0026auto=format\u0026n=9Y2RQ5qliRYBiJPG\u0026q=85\u0026s=0addefd7d978ccbe454701a49fa12b3c 2500w`})}),_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Create API key`}),`, then copy the key and store it somewhere safe. Langdock shows it once and never again.`]})]})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Never share a personal API key. It authenticates as you and spends your budget, so anyone who has it is working as you. Use a workspace API key for shared applications and automations, and see `,_jsx(_components.a,{href:`/en/admin/ai-adoption-and-rollout/best-practices/api-key-best-practices`,children:`API key best practices`}),` for storing keys safely.`]})}),`\n`,_jsxs(_components.p,{children:[`The page shows shared usage progress as a percentage, separate from `,_jsx(_components.strong,{children:`Personal API spend this month`}),`. Cloud shows `,_jsx(_components.strong,{children:`Shared extra usage`}),`. BYOK and dedicated workspaces show `,_jsx(_components.strong,{children:`Shared included usage this week`}),` and `,_jsx(_components.strong,{children:`Shared extra usage`}),`, each with its own reset date. If your individual limit has nothing left, personal API requests return an error instead of using a fallback model. You can request a higher limit when usage requests are enabled, or ask your workspace admin. If the workspace has reached its spend limit, increasing your individual limit does not restore API access. Your workspace admin must raise the workspace limit or set it to `,_jsx(_components.strong,{children:`Unlimited`}),`, or you must wait for the current billing period to reset.`]}),`\n`,_jsx(Heading,{level:`2`,id:`connect-a-tool`,children:`Connect a tool`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Connect your tools`}),` walks you through the setup for Claude Code, Claude Desktop, OpenCode, Codex, GitHub Copilot, and direct API calls with cURL. You can also connect Cursor with the same key. Pick an available model and the examples update to match, then follow the steps for your tool.`]}),`\n`,_jsxs(_components.p,{children:[`The guides below match that setup. See the `,_jsx(_components.a,{href:`/en/developer/completion-api/completion-overview`,children:`Langdock Completion APIs`}),` for an overview of the available APIs. Replace `,_jsx(_components.code,{children:`YOUR_API_KEY`}),` with your key and `,_jsx(_components.code,{children:`your-model-id`}),` with an ID from `,_jsx(_components.strong,{children:`Available models`}),`. Use `,_jsx(_components.code,{children:`eu`}),` or `,_jsx(_components.code,{children:`us`}),` to match your workspace’s model region. For an OpenAI compatible model in the `,_jsx(_components.code,{children:`global`}),` region, use `,_jsx(_components.code,{children:`/openai/global/v1`}),` and list models at `,_jsx(_components.code,{children:`/openai/global/v1/models`}),`. For an OpenAI compatible model hosted in Switzerland, use `,_jsx(_components.code,{children:`/openai/ch/v1`}),` and list models at `,_jsx(_components.code,{children:`/openai/ch/v1/models`}),`. On dedicated deployments the base URL starts with your deployment origin instead of `,_jsx(_components.code,{children:`https://api.langdock.com`}),`.`]}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Claude Code`,id:`claude-code`,children:[_jsx(_components.p,{children:`Claude Code uses the Anthropic Messages API through Langdock.`}),_jsxs(Steps,{children:[_jsx(Step,{title:`Check available Claude models`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.langdock.com/anthropic/eu/v1/models`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer YOUR_API_KEY\"`})]}),`\n`]})})})}),_jsxs(Step,{title:`Add your settings`,children:[_jsxs(_components.p,{children:[`Add this to `,_jsx(_components.code,{children:`~/.claude/settings.json`}),` (on Windows: `,_jsx(_components.code,{children:`%USERPROFILE%\\\\.claude\\\\settings.json`}),`), and create the file if it does not exist. Replace the model IDs with ones from the previous step, and make sure `,_jsx(_components.code,{children:`ANTHROPIC_API_KEY`}),` is not set:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"env\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"ANTHROPIC_BASE_URL\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.langdock.com/anthropic/eu\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"ANTHROPIC_AUTH_TOKEN\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR_API_KEY\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"ANTHROPIC_MODEL\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"your-model-id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"ANTHROPIC_SMALL_FAST_MODEL\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"your-model-id\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]}),_jsxs(Step,{title:`Start Claude Code`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`claude`})}),`\n`]})})}),_jsx(_components.p,{children:`Claude Code speaks the Anthropic Messages API, which Langdock serves at the base URL above. All requests are now routed through your workspace.`})]})]})]}),_jsxs(Tab,{title:`Claude Desktop`,id:`claude-desktop`,children:[_jsx(_components.p,{children:`Claude Desktop can run chats on Langdock models through third-party inference.`}),_jsxs(Steps,{children:[_jsx(Step,{title:`Enable Developer Mode`,children:_jsxs(_components.p,{children:[`In Claude Desktop, open `,_jsx(_components.strong,{children:`Help → Troubleshooting → Enable Developer Mode`}),`.`]})}),_jsxs(Step,{title:`Configure the gateway`,children:[_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Developer → Configure third-party inference`}),`. Set `,_jsx(_components.strong,{children:`Inference provider`}),` to `,_jsx(_components.strong,{children:`Gateway`}),`. Under `,_jsx(_components.strong,{children:`Gateway credentials`}),`, enter:`]}),_jsx(CodeBlock,{numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Gateway base URL: https://api.langdock.com/anthropic/eu`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Gateway API key: YOUR_API_KEY`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Gateway auth scheme: bearer`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Credential kind: Static API key`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})]}),_jsx(Step,{title:`Test and apply`,children:_jsxs(_components.p,{children:[`Keep `,_jsx(_components.strong,{children:`Model discovery`}),` enabled, then click `,_jsx(_components.strong,{children:`Test connection`}),` and `,_jsx(_components.strong,{children:`Test model discovery`}),`. Claude discovers the Anthropic models available in your workspace. Click `,_jsx(_components.strong,{children:`Save Changes`}),`, then `,_jsx(_components.strong,{children:`Apply Changes`}),`. Claude relaunches; select `,_jsx(_components.strong,{children:`Continue with Gateway`}),` if prompted.`]})})]})]}),_jsxs(Tab,{title:`Cursor`,id:`cursor`,children:[_jsxs(_components.p,{children:[`Cursor has no built-in card under `,_jsx(_components.strong,{children:`Connect your tools`}),` yet. Point its OpenAI provider at Langdock:`]}),_jsxs(Steps,{children:[_jsx(Step,{title:`Open model settings`,children:_jsxs(_components.p,{children:[`In Cursor, open `,_jsx(_components.strong,{children:`Cursor Settings > Models`}),`.`]})}),_jsxs(Step,{title:`Add your key and base URL`,children:[_jsxs(_components.p,{children:[`Paste your personal API key into the OpenAI provider field and click `,_jsx(_components.strong,{children:`Save`}),`. Turn on `,_jsx(_components.strong,{children:`Override OpenAI Base URL`}),` and enter this URL with `,_jsx(_components.code,{children:`/v1`}),` and no trailing slash:`]}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://api.langdock.com/openai/eu/v1`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})]}),_jsx(Step,{title:`Add a workspace model`,children:_jsxs(_components.p,{children:[`Enter the exact ID of a model from `,_jsx(_components.strong,{children:`Available models`}),`, then click `,_jsx(_components.strong,{children:`Add Custom Model`}),`. Select that model for chat.`]})})]}),_jsxs(_components.p,{children:[`Custom API keys in Cursor cover chat models only. Tab completion keeps using Cursor’s built-in models. Agent mode fails with an HTTP 400 error, because Langdock’s Chat Completions endpoint accepts only tools of type `,_jsx(_components.code,{children:`function`}),`. For agentic coding, use Claude Code, Codex, GitHub Copilot, or OpenCode instead.`]})]}),_jsxs(Tab,{title:`Codex`,id:`codex`,children:[_jsxs(_components.p,{children:[`Codex uses Langdock’s OpenAI Responses endpoint (`,_jsx(_components.code,{children:`wire_api = \"responses\"`}),`).`]}),_jsxs(Steps,{children:[_jsxs(Step,{title:`Add your config`,children:[_jsxs(_components.p,{children:[`Add this to `,_jsx(_components.code,{children:`~/.codex/config.toml`}),` (on Windows: `,_jsx(_components.code,{children:`%USERPROFILE%\\\\.codex\\\\config.toml`}),`), and create the file if it does not exist:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`toml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`toml`,children:_jsxs(_components.code,{language:`toml`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`model`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"your-model-id\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`model_provider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"workspace\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`model_providers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`workspace`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Langdock\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`base_url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.langdock.com/openai/eu/v1\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`wire_api`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"responses\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`experimental_bearer_token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR_API_KEY\"`})]}),`\n`]})})})]}),_jsxs(Step,{title:`Start Codex`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`codex`})}),`\n`]})})}),_jsx(_components.p,{children:`Or open the Codex / ChatGPT desktop app. This file stores your key on this computer. If you share the machine, revoke the key in Langdock and create a new one.`})]})]})]}),_jsxs(Tab,{title:`GitHub Copilot`,id:`github-copilot`,children:[_jsx(_components.p,{children:`GitHub Copilot uses Langdock’s OpenAI Chat Completions endpoint. Copilot Chat in VS Code, agent mode, and Copilot CLI need an OpenAI-compatible model that supports tools.`}),_jsxs(Steps,{children:[_jsx(Step,{title:`Add a custom endpoint in VS Code`,children:_jsxs(_components.p,{children:[`In VS Code, open the Command Palette and run `,_jsx(_components.strong,{children:`Chat: Manage Language Models`}),`. Choose `,_jsx(_components.strong,{children:`Add Models → Custom Endpoint`}),`. Use Langdock as the group name, paste your API key, and select `,_jsx(_components.strong,{children:`Chat Completions`}),`.`]})}),_jsxs(Step,{title:`Add the provider`,children:[_jsxs(_components.p,{children:[`VS Code opens `,_jsx(_components.code,{children:`chatLanguageModels.json`}),`. Add this provider, or merge it with providers you already have, save, then pick the model in the Chat picker:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`17`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Langdock\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"vendor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"customendpoint\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"apiKey\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR_API_KEY\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"apiType\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"chat-completions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"models\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"your-model-id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Your model\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.langdock.com/openai/eu/v1/chat/completions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"toolCalling\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"streaming\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})}),`\n`]})})})]}),_jsxs(Step,{title:`Or use Copilot CLI`,children:[_jsxs(_components.p,{children:[`Run this in your terminal. Add the exports to your shell profile if you want them to persist. On Windows, set the same values with `,_jsx(_components.code,{children:`$env:`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` COPILOT_PROVIDER_BASE_URL`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.langdock.com/openai/eu/v1\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` COPILOT_PROVIDER_API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"YOUR_API_KEY\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` COPILOT_MODEL`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"your-model-id\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`copilot`})}),`\n`]})})})]}),_jsx(Step,{title:`What this connection covers`,children:_jsxs(_components.p,{children:[`This routes Copilot Chat, agent mode, and Copilot CLI through your workspace. Inline ghost-text completions still use GitHub. Copilot Business or Enterprise organizations may need an admin to enable the `,_jsx(_components.strong,{children:`Bring Your Own Language Model Key`}),` policy.`]})})]})]}),_jsxs(Tab,{title:`OpenCode`,id:`opencode`,children:[_jsx(_components.p,{children:`OpenCode uses the Anthropic-compatible endpoint through Langdock.`}),_jsxs(Steps,{children:[_jsxs(Step,{title:`Add your config`,children:[_jsxs(_components.p,{children:[`Add this to `,_jsx(_components.code,{children:`opencode.json`}),` in your project, or to `,_jsx(_components.code,{children:`~/.config/opencode/opencode.json`}),` (on Windows: `,_jsx(_components.code,{children:`%USERPROFILE%\\\\.config\\\\opencode\\\\opencode.json`}),`). You can list more workspace models under `,_jsx(_components.code,{children:`models`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`15`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`15`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"$schema\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://opencode.ai/config.json\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"provider\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"workspace\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"npm\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"@ai-sdk/anthropic\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Langdock\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"options\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"baseURL\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.langdock.com/anthropic/eu/v1\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"models\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"your-model-id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Your model\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]}),_jsxs(Step,{title:`Start OpenCode and connect`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`opencode`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Run `,_jsx(_components.code,{children:`/connect`}),`, select `,_jsx(_components.strong,{children:`Other`}),`, enter `,_jsx(_components.code,{children:`workspace`}),` as the provider ID, then paste your API key.`]})]}),_jsxs(Step,{title:`Choose the model`,children:[_jsxs(_components.p,{children:[`Choose the model with `,_jsx(_components.code,{children:`/models`}),`, or start OpenCode with it directly:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`opencode`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --model`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` workspace/your-model-id`})]}),`\n`]})})})]})]})]}),_jsxs(Tab,{title:`API / cURL`,id:`api-%2F-curl`,children:[_jsx(_components.p,{children:`Call the completion APIs directly from your own projects.`}),_jsxs(Steps,{children:[_jsx(Step,{title:`List available models`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.langdock.com/openai/eu/v1/models`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer YOUR_API_KEY\"`})]}),`\n`]})})})}),_jsx(Step,{title:`Send a Chat Completions request`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.langdock.com/openai/eu/v1/chat/completions`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer YOUR_API_KEY\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"model\": \"your-model-id\", \"messages\": [{\"role\": \"user\", \"content\": \"Hello\"}]}'`})]}),`\n`]})})})}),_jsx(Step,{title:`Or use the Anthropic-compatible API`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.langdock.com/anthropic/eu/v1/messages`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer YOUR_API_KEY\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"model\": \"your-model-id\", \"max_tokens\": 1024, \"messages\": [{\"role\": \"user\", \"content\": \"Hello\"}]}'`})]}),`\n`]})})})})]}),_jsxs(_components.p,{children:[`Use any OpenAI- or Anthropic-compatible SDK by pointing its base URL at the URLs above. See the `,_jsx(_components.a,{href:`/en/developer/completion-api/openai`,children:`Chat Completions`}),`, `,_jsx(_components.a,{href:`/en/developer/completion-api/openai-responses`,children:`Responses`}),`, and `,_jsx(_components.a,{href:`/en/developer/completion-api/anthropic`,children:`Anthropic Messages`}),` API docs for full request shapes.`]})]})]}),`\n`,_jsxs(_components.p,{children:[`Your key works with the OpenAI compatible `,_jsx(_components.a,{href:`/en/developer/completion-api/openai`,children:`Chat Completions`}),`, `,_jsx(_components.a,{href:`/en/developer/completion-api/openai-responses`,children:`Responses`}),`, and `,_jsx(_components.a,{href:`/en/developer/completion-api/openai-images`,children:`Image Generations`}),` APIs, the `,_jsx(_components.a,{href:`/en/developer/completion-api/anthropic`,children:`Anthropic Messages API`}),`, the `,_jsx(_components.a,{href:`/en/developer/completion-api/google`,children:`Google Completion API`}),`, and the `,_jsx(_components.a,{href:`/en/developer/completion-api/mistral`,children:`Mistral Completion API`}),`. Which of them you can call depends on the models configured for your workspace. `,_jsx(_components.strong,{children:`Available models`}),` shows what you can pick for the built-in OpenAI and Anthropic guides, and for Google and Mistral you follow the API documentation instead.`]}),`\n`,_jsxs(_components.p,{children:[`Completion is included on every personal API key. Your admin can enable more scopes, including Agents, Skills, Prompts, Embedding, Knowledge Folder, Integrations, and Workflows. User Management, Audit Logs, Usage Export, Compliance, and Governance still need a workspace API key. If your admin allows `,_jsx(_components.strong,{children:`Scheduled Tasks API`}),`, a new key can create tasks that belong to you and show up in `,_jsx(_components.strong,{children:`Scheduled`}),`. If your admin allows `,_jsx(_components.strong,{children:`Workflow Write API`}),`, a new key can create, update, and publish workflows you can edit. Existing keys keep the scopes they were created with. `,_jsx(_components.strong,{children:`Workflow Deletion API`}),` cannot be granted on a personal key.`]}),`\n`,_jsxs(_components.p,{children:[`A workspace API key can also receive `,_jsx(_components.strong,{children:`Meetings Read API`}),` when `,_jsx(_components.strong,{children:`General access`}),` is on for Meetings. That key can read notes and transcripts of meetings in folders shared with the whole workspace.`]}),`\n`,_jsx(Heading,{level:`2`,id:`rotate-or-revoke-a-key`,children:`Rotate or revoke a key`}),`\n`,_jsxs(_components.p,{children:[`Open the menu next to a key under `,_jsx(_components.strong,{children:`Your API keys`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Rotate key`}),` replaces the secret and shows the new one once. The old one stops working immediately, so update every connected tool right away.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Revoke key`}),` switches the key off for good.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Your workspace admin can revoke your keys as well. They also stop working if your admin takes away your access to personal API keys or deactivates your workspace membership.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Personal API keys","description":"Create and manage a personal API key for coding tools and your own projects.","keywords":["personal api keys","api","coding tools","claude code","github copilot","codex","opencode","cursor","curl"],"href":"/en/using-langdock/account/personal-api-keys"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Create a personal API key","slug":"create-a-personal-api-key","depth":2,"children":[]},{"title":"Connect a tool","slug":"connect-a-tool","depth":2,"children":[]},{"title":"Rotate or revoke a key","slug":"rotate-or-revoke-a-key","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"langdock-34","siteName":"Docs","title":"Personal API keys - Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/en/using-langdock/account/personal-api-keys","matchLevel":0},"de":{"href":"/de/using-langdock/account/personal-api-keys","matchLevel":1}}},"lastModified":"2026-11-02T10:52:58.293Z","originalFileLocation":"en/using-langdock/account/personal-api-keys.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Create and manage a personal API key for coding tools and your own projects.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/langdock-34/8EMNQyrrZlRONhj1/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/langdock-34/8EMNQyrrZlRONhj1/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/langdock-34/8EMNQyrrZlRONhj1/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/langdock-34/8EMNQyrrZlRONhj1/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/langdock-34/8EMNQyrrZlRONhj1/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/langdock-34/8EMNQyrrZlRONhj1/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/langdock-34/8EMNQyrrZlRONhj1/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/langdock-34/8EMNQyrrZlRONhj1/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/langdock-34/8EMNQyrrZlRONhj1/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Personal API keys - Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create and manage a personal API key for coding tools and your own projects.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.langdock.com/en/using-langdock/account/personal-api-keys\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://langdock-34.mintlify.site/_mintlify/api/og/v2?division=Account\u0026amp;title=Personal+API+keys\u0026amp;description=Create+and+manage+a+personal+API+key+for+coding+tools+and+your+own+projects.\u0026amp;theme=c0a8a64be653b2c8cdece0f0\u0026amp;signature=0598c32e27ad6e2d0a912e6224988694a951199fca62c499d3df10c394e037cc\">\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=\"Personal API keys - Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create and manage a personal API key for coding tools and your own projects.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://langdock-34.mintlify.site/_mintlify/api/og/v2?division=Account\u0026amp;title=Personal+API+keys\u0026amp;description=Create+and+manage+a+personal+API+key+for+coding+tools+and+your+own+projects.\u0026amp;theme=c0a8a64be653b2c8cdece0f0\u0026amp;signature=0598c32e27ad6e2d0a912e6224988694a951199fca62c499d3df10c394e037cc\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/langdock-34/8EMNQyrrZlRONhj1/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4469FC\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.langdock.com/en/using-langdock/account/personal-api-keys\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/using-langdock/account/personal-api-keys.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.langdock.com/en/using-langdock/account/personal-api-keys\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://docs.langdock.com/de/using-langdock/account/personal-api-keys\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.langdock.com/en/using-langdock/account/personal-api-keys\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.langdock.com/#organization\",\"name\":\"Docs\",\"url\":\"https://docs.langdock.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/langdock-34/URgvNwU7CYGZq8R7/logo/light.svg?fit=max\u0026auto=format\u0026n=URgvNwU7CYGZq8R7\u0026q=85\u0026s=594b4bd597e2629fb1a7dccfae6aa1c4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.langdock.com#website\",\"name\":\"Docs\",\"url\":\"https://docs.langdock.com\",\"publisher\":{\"@id\":\"https://docs.langdock.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.langdock.com/en/using-langdock/account/personal-api-keys#webpage\",\"url\":\"https://docs.langdock.com/en/using-langdock/account/personal-api-keys\",\"name\":\"Personal API keys\",\"description\":\"Create and manage a personal API key for coding tools and your own projects.\",\"dateModified\":\"2026-11-02T10:52:58.293Z\",\"isPartOf\":{\"@id\":\"https://docs.langdock.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.langdock.com/en/using-langdock/account/personal-api-keys#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.langdock.com/en/using-langdock/account/personal-api-keys#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Account\",\"item\":\"https://docs.langdock.com/en/using-langdock/account/account\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Personal API keys\",\"item\":\"https://docs.langdock.com/en/using-langdock/account/personal-api-keys\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.langdock.com/en/using-langdock/account/personal-api-keys#article\",\"headline\":\"Personal API keys\",\"name\":\"Personal API keys\",\"description\":\"Create and manage a personal API key for coding tools and your own projects.\",\"url\":\"https://docs.langdock.com/en/using-langdock/account/personal-api-keys\",\"mainEntityOfPage\":{\"@id\":\"https://docs.langdock.com/en/using-langdock/account/personal-api-keys#webpage\"},\"dateModified\":\"2026-11-02T10:52:58.293Z\",\"keywords\":\"personal api keys, api, coding tools, claude code, github copilot, codex, opencode, cursor, curl\",\"publisher\":{\"@id\":\"https://docs.langdock.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.langdock.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Docs","nav":{"global":{"anchors":[{"anchor":"Changelog","icon":"newspaper","href":"https://www.langdock.com/changelog"},{"anchor":"Status","icon":"signal-bars","href":"https://status.langdock.com/"},{"anchor":"Support","icon":"messages-question","href":"https://www.langdock.com/contact-us"}]},"languages":[{"language":"en","default":true,"tabs":[{"tab":"Using Langdock","groups":[{"group":"Get Started","pages":[{"title":"Introduction to Langdock","href":"/en/using-langdock/get-started/introduction"}]},{"group":"Chat","pages":[{"title":"Basic Chat functionalities","href":"/en/using-langdock/chat/functionalities"},{"title":"Document Editor","href":"/en/using-langdock/chat/document-editor"},{"title":"Prompt Library","href":"/en/using-langdock/chat/prompt-library"},{"title":"Projects","href":"/en/using-langdock/chat/projects"},{"title":"Scheduled tasks","href":"/en/using-langdock/chat/scheduled"},{"group":"Tools","pages":[{"title":"Image Generation","href":"/en/using-langdock/chat/tools/image-generation"},{"title":"Document Search","href":"/en/using-langdock/chat/tools/document-search"},{"title":"Company Knowledge","href":"/en/using-langdock/chat/tools/company-knowledge"},{"title":"Web Search","href":"/en/using-langdock/chat/tools/web-search"},{"title":"Image Analysis (Vision)","href":"/en/using-langdock/chat/tools/image-analysis"},{"title":"Memory","href":"/en/using-langdock/chat/tools/memory"},{"title":"Deep Research","href":"/en/using-langdock/chat/tools/deep-research"},{"title":"Mermaid Diagrams","href":"/en/using-langdock/chat/tools/mermaid"},{"title":"Actions in Chat","href":"/en/using-langdock/chat/tools/actions-in-chat"},{"title":"Workflows","href":"/en/using-langdock/chat/tools/workflows"}]}]},{"group":"Skills","pages":[{"title":"Introduction to Skills","href":"/en/using-langdock/skills/introduction"},{"title":"Creating Skills","href":"/en/using-langdock/skills/creating-skills"},{"title":"Workspace Skills","href":"/en/using-langdock/skills/workspace-skills"},{"title":"Skills and Integrations","href":"/en/using-langdock/skills/skills-integrations"},{"title":"System Skills","href":"/en/using-langdock/skills/system-skills"}]},{"group":"Library","pages":[{"title":"Introduction to Library","href":"/en/using-langdock/library/introduction"},{"title":"File Templates","href":"/en/using-langdock/library/file-templates"},{"title":"Recent Files","href":"/en/using-langdock/library/recent-files"},{"title":"Folders","href":"/en/using-langdock/library/folders"},{"title":"Knowledge bases","href":"/en/using-langdock/library/knowledge-bases"}]},{"group":"Agents","pages":[{"title":"Introduction to Agents","href":"/en/using-langdock/agents/introduction"},{"title":"Agent Builder","href":"/en/using-langdock/agents/agent-builder"},{"title":"Agent Configuration","href":"/en/using-langdock/agents/configuration"},{"title":"Advanced Features","href":"/en/using-langdock/agents/advanced-features"},{"title":"Archive agents","href":"/en/using-langdock/agents/archive"},{"title":"Form Fields","href":"/en/using-langdock/agents/form-fields"},{"title":"Subagents","href":"/en/using-langdock/agents/subagents"},{"title":"Agent Templates","href":"/en/using-langdock/agents/templates"},{"title":"Agent Evals","href":"/en/using-langdock/agents/agent-evals"},{"title":"Agent Analytics","href":"/en/using-langdock/agents/analytics"},{"title":"Agent Use Cases","href":"/en/using-langdock/agents/agent-templates"}]},{"group":"Workflows","pages":[{"title":"Introduction to Workflows","href":"/en/using-langdock/workflows/introduction"},{"title":"Getting Started","href":"/en/using-langdock/workflows/getting-started"},{"title":"Workflow Builder","href":"/en/using-langdock/workflows/workflow-builder"},{"group":"Fundamentals","pages":[{"title":"Core Concepts","href":"/en/using-langdock/workflows/fundamentals/core-concepts"},{"title":"Field Modes","href":"/en/using-langdock/workflows/fundamentals/field-modes"},{"title":"Human in the Loop","href":"/en/using-langdock/workflows/fundamentals/human-in-the-loop"},{"title":"Variable Usage","href":"/en/using-langdock/workflows/fundamentals/variable-usage"}]},{"group":"Node Types","pages":[{"title":"Agent","href":"/en/using-langdock/workflows/nodes/agent-node"},{"title":"Action","href":"/en/using-langdock/workflows/nodes/action-node"},{"title":"Web Search","href":"/en/using-langdock/workflows/nodes/web-search-node"},{"title":"File Search","href":"/en/using-langdock/workflows/nodes/file-search-node"},{"title":"HTTP Request","href":"/en/using-langdock/workflows/nodes/http-request-node"},{"title":"Condition","href":"/en/using-langdock/workflows/nodes/condition-node"},{"title":"Loop","href":"/en/using-langdock/workflows/nodes/loop-node"},{"title":"Code","href":"/en/using-langdock/workflows/nodes/code-node"},{"title":"Guardrails","href":"/en/using-langdock/workflows/nodes/guardrails-node"},{"title":"Delay","href":"/en/using-langdock/workflows/nodes/delay-node"},{"title":"Send Notification","href":"/en/using-langdock/workflows/nodes/notification-node"},{"title":"Image Generation","href":"/en/using-langdock/workflows/nodes/image-generation-node"},{"title":"Output","href":"/en/using-langdock/workflows/nodes/output-node"},{"group":"Triggers","pages":[{"title":"Integration Trigger","href":"/en/using-langdock/workflows/nodes/triggers/integration-trigger"},{"title":"Scheduled Trigger","href":"/en/using-langdock/workflows/nodes/triggers/scheduled-trigger"},{"title":"Manual Trigger","href":"/en/using-langdock/workflows/nodes/triggers/manual-trigger"},{"title":"Form Trigger","href":"/en/using-langdock/workflows/nodes/triggers/form-trigger"},{"title":"Webhook Trigger","href":"/en/using-langdock/workflows/nodes/triggers/webhook-trigger"}]}]},{"group":"Guides","pages":[{"title":"Runtime limits","href":"/en/using-langdock/workflows/guides/limits"},{"title":"Cost Management","href":"/en/using-langdock/workflows/guides/cost-management"},{"title":"Node Types","href":"/en/using-langdock/workflows/guides/node-types"}]}]},{"group":"Meetings","pages":[{"title":"Introduction to Meetings","href":"/en/using-langdock/meetings/introduction"},{"title":"Getting started","href":"/en/using-langdock/meetings/getting-started"},{"title":"Transcribing meetings","href":"/en/using-langdock/meetings/transcribing"},{"title":"Watermark and transcription notices","href":"/en/using-langdock/meetings/watermark"},{"title":"Meeting notes and transcripts","href":"/en/using-langdock/meetings/meeting-notes"},{"title":"Find and organize meetings","href":"/en/using-langdock/meetings/find-meetings"},{"title":"Ask questions about meetings","href":"/en/using-langdock/meetings/ask-questions"},{"title":"Sharing and access","href":"/en/using-langdock/meetings/sharing"},{"title":"Personal settings","href":"/en/using-langdock/meetings/personal-settings"},{"title":"Privacy and data","href":"/en/using-langdock/meetings/privacy"},{"title":"Troubleshooting","href":"/en/using-langdock/meetings/troubleshooting"}]},{"group":"Apps","pages":[{"title":"Apps overview","sidebarTitle":"Overview","href":"/en/using-langdock/apps/introduction"},{"title":"Create and edit an app","href":"/en/using-langdock/apps/create-and-edit"},{"title":"Create an app from a template","sidebarTitle":"Use templates","href":"/en/using-langdock/apps/templates"},{"title":"Publish and share an app","href":"/en/using-langdock/apps/publish-and-share"},{"title":"Find and use apps","href":"/en/using-langdock/apps/find-and-use"},{"title":"Integrations in apps","sidebarTitle":"Integrations","href":"/en/using-langdock/apps/integrations"},{"title":"Data in apps","sidebarTitle":"Data","href":"/en/using-langdock/apps/data"},{"title":"Apps limits and troubleshooting","sidebarTitle":"Limits and troubleshooting","href":"/en/using-langdock/apps/limits-and-troubleshooting"}]},{"group":"Integrations","pages":[{"title":"Introduction to Integrations","href":"/en/using-langdock/integrations/introduction"},{"title":"Connections","href":"/en/using-langdock/integrations/connections"},{"title":"Integration Directory","sidebarTitle":"Integration Directory","href":"/en/using-langdock/integrations/integration-directory"},{"group":"MCP","pages":[{"title":"Building MCP Servers with MCP Apps","sidebarTitle":"MCP Apps","href":"/en/using-langdock/integrations/mcp-ui"},{"title":"MCP Server Directory","sidebarTitle":"MCP Directory","href":"/en/using-langdock/integrations/mcp-directory"}]},{"title":"Agent-to-Agent Protocol (A2A)","sidebarTitle":"A2A Protocol","href":"/en/using-langdock/integrations/a2a-protocol"}]},{"group":"Desktop app","pages":[{"title":"Desktop app","sidebarTitle":"Desktop app","href":"/en/using-langdock/desktop-app/introduction"}]},{"group":"Mobile app","pages":[{"title":"Mobile App","href":"/en/using-langdock/mobile-app/introduction"}]},{"group":"Microsoft Add-ins","pages":[{"title":"Excel Add-in","sidebarTitle":"Excel","href":"/en/using-langdock/microsoft-add-ins/excel"},{"title":"Outlook Add-in","sidebarTitle":"Outlook","href":"/en/using-langdock/microsoft-add-ins/outlook"}]},{"group":"Models \u0026 Limits","pages":[{"title":"Model Guide","href":"/en/using-langdock/models-and-limits/models"},{"title":"Context Window","href":"/en/using-langdock/models-and-limits/context-window"},{"title":"Usage Limits","href":"/en/using-langdock/models-and-limits/fair-usage-policy"},{"title":"Usage Tips","href":"/en/using-langdock/models-and-limits/usage-tips"}]},{"group":"Guides","pages":[{"group":"Use Cases","pages":[{"title":"Using Langdock for Data Analysis","href":"/en/using-langdock/guides/data-analysis"}]},{"group":"Agents","pages":[{"title":"Creating an Agent","mode":"wide","href":"/en/using-langdock/guides/agents/agent-creation"},{"title":"Agent Configurator Template","href":"/en/using-langdock/guides/agents/agent-configurator"}]},{"group":"Knowledge","pages":[{"title":"Knowledge Basics","href":"/en/using-langdock/guides/knowledge/knowledge-basics"},{"title":"Vector Databases \u0026 Knowledge bases","href":"/en/using-langdock/guides/knowledge/vector-databases-knowledge-folders"},{"title":"Types of Knowledge","href":"/en/using-langdock/guides/knowledge/knowledge-types"},{"title":"Best Practices \u0026 Tips","href":"/en/using-langdock/guides/knowledge/best-practices"}]},{"group":"Integrations","pages":[{"title":"Using Integrations","href":"/en/using-langdock/guides/integrations/using-integrations"},{"title":"FAQ \u0026 Troubleshooting","href":"/en/using-langdock/guides/integrations/faq"},{"title":"Integration Builder Agent","href":"/en/using-langdock/guides/integrations/integration-builder-agent"},{"title":"Creating Custom Integrations","href":"/en/using-langdock/guides/integrations/create-integrations"},{"title":"Sandbox Utility Functions","href":"/en/using-langdock/guides/integrations/sandbox-utilities"},{"title":"File Support in Custom Integrations","href":"/en/using-langdock/guides/integrations/file-support-for-actions"},{"title":"Action Builder Agent","href":"/en/using-langdock/guides/integrations/agent"},{"title":"Folder Sync","href":"/en/using-langdock/guides/integrations/folder-sync"},{"title":"Vector Databases","href":"/en/using-langdock/guides/integrations/vector-databases"},{"group":"MCP","pages":[{"title":"Model Context Protocol (MCP)","href":"/en/using-langdock/guides/integrations/mcp/mcp"},{"title":"Langdock Agent MCP Server","sidebarTitle":"Langdock MCP Server","href":"/en/using-langdock/guides/integrations/mcp/langdock-agent-mcp-server"},{"title":"File Input in MCP Tools","href":"/en/using-langdock/guides/integrations/mcp/mcp-file-input"},{"title":"MCP File Outputs","href":"/en/using-langdock/guides/integrations/mcp/mcp-file-outputs"}]}]},{"group":"Skills","pages":[{"title":"Using Skills","href":"/en/using-langdock/guides/skills/skills-guide"},{"title":"Webinar \u0026 FAQ","href":"/en/using-langdock/guides/skills/faq"}]},{"group":"Library \u0026 Templates","pages":[{"title":"Using File Templates","href":"/en/using-langdock/guides/library/library-guide"},{"title":"Building Presentation Templates","href":"/en/using-langdock/guides/library/presentation-templates"},{"title":"Webinar \u0026 FAQ","href":"/en/using-langdock/guides/library/faq"}]},{"group":"Chatbots","pages":[{"title":"How to use the Slack Bot","href":"/en/using-langdock/guides/chatbots/slack"},{"title":"How to use the Teams Bot","href":"/en/using-langdock/guides/chatbots/teams-bot"}]},{"group":"Prompt Engineering","pages":[{"group":"Basics","pages":[{"title":"Basics: Prompt Elements","href":"/en/using-langdock/guides/prompt-engineering/basics/prompt-elements"},{"title":"Basics of AI models","href":"/en/using-langdock/guides/prompt-engineering/basics/basics"}]},{"group":"Advanced Techniques","pages":[{"title":"Advanced: Tips \u0026 Tricks","href":"/en/using-langdock/guides/prompt-engineering/advanced-techniques/tricks"},{"title":"Prompting Techniques","href":"/en/using-langdock/guides/prompt-engineering/advanced-techniques/prompting-techniques"},{"group":"Advanced Principles","pages":[{"title":"Clear and Specific Instructions","href":"/en/using-langdock/guides/prompt-engineering/advanced-techniques/advanced-principles/instructions"},{"title":"Structure Your Prompt","href":"/en/using-langdock/guides/prompt-engineering/advanced-techniques/advanced-principles/structure-prompt"},{"title":"Control Output Format","href":"/en/using-langdock/guides/prompt-engineering/advanced-techniques/advanced-principles/output-format"},{"title":"Chain Prompts","href":"/en/using-langdock/guides/prompt-engineering/advanced-techniques/advanced-principles/chain-prompts"},{"title":"Give the LLM a Role","href":"/en/using-langdock/guides/prompt-engineering/advanced-techniques/advanced-principles/role"}]}]},{"title":"Further Resources","href":"/en/using-langdock/guides/prompt-engineering/further-resources"}]}]},{"group":"Account","pages":[{"title":"Account Settings","description":"Manage your profile, preferences, shared chats, custom instructions, API keys, usage, security, notifications, and memory from Account Settings.","href":"/en/using-langdock/account/account"},{"title":"Personal API keys","href":"/en/using-langdock/account/personal-api-keys"},{"title":"Custom instructions","description":"Provide custom instructions to improve responses.","href":"/en/using-langdock/account/custom-instructions"}]},{"group":"Resources","pages":[{"title":"Feature Overview","href":"/en/using-langdock/resources/feature-overview"},{"title":"Dictionary","href":"/en/using-langdock/resources/dictionary"},{"title":"Tricks and Shortcuts","href":"/en/using-langdock/resources/tricks-and-shortcuts"},{"title":"Langdock Workshops","href":"/en/using-langdock/resources/langdock-workshops"},{"title":"Langdock Cheat Sheet","href":"/en/using-langdock/resources/cheat-sheet"}]},{"group":"Troubleshooting","pages":[{"group":"FAQ","pages":[{"title":"Which file types does Langdock support?","href":"/en/using-langdock/troubleshooting/faq/supported-file-types"},{"title":"What are the file limits in the chat and in agents?","href":"/en/using-langdock/troubleshooting/faq/file-limit"},{"title":"When should I use direct files, a Knowledge base, or Folder Sync?","href":"/en/using-langdock/troubleshooting/faq/attachments"},{"title":"How does a file attachment work and how is it different from a Knowledge base?","href":"/en/using-langdock/troubleshooting/faq/knowledge-folders-and-direct-attachments"},{"title":"When are newly released models available in Langdock?","href":"/en/using-langdock/troubleshooting/faq/model-availability"},{"title":"Can I add tabular data such as Excel or CSV files to a Knowledge base?","href":"/en/using-langdock/troubleshooting/faq/tabular-files-in-knowledge-folders"},{"title":"How long are files saved in Langdock?","href":"/en/using-langdock/troubleshooting/faq/data-retention-for-files"},{"title":"Can I share a chat with Langdock Support?","href":"/en/using-langdock/troubleshooting/faq/share-chat-with-support"},{"title":"Why can I not add a repository to a chat, an agent, or a Knowledge base?","href":"/en/using-langdock/troubleshooting/faq/repository-in-knowledge-folder"}]}]},{"group":"Orphans","hidden":true,"pages":[{"title":"Settings of Azure Content Filters","href":"/en/_internal/deployment/content-filters"},{"title":"Code Execution Runtime Setup for Dedicated Deployments","href":"/en/_internal/deployment/data-analyst"},{"title":"Dynamic Container App Sessions","href":"/en/_internal/deployment/dynamic-container-app-sessions"},{"title":"Whitelisting","href":"/en/_internal/deployment/whitelisting"},{"title":"Model without tools","href":"/en/_internal/product/chat/plain-model"},{"title":"Best Practices","href":"/en/_internal/product/workflows/best-practices"},{"title":"Error Handling","href":"/en/_internal/product/workflows/error-handling"},{"title":"Finance Workflows","href":"/en/_internal/product/workflows/use-cases/finance"},{"title":"Marketing Workflows","href":"/en/_internal/product/workflows/use-cases/marketing"},{"title":"Popular Workflows","href":"/en/_internal/product/workflows/use-cases/popular-workflows"},{"title":"Sales Workflows","href":"/en/_internal/product/workflows/use-cases/sales"},{"title":"Chain-of-Thought Prompting","href":"/en/_internal/resources/chain-of-thought-prompting"},{"title":"Few-shot Prompting","href":"/en/_internal/resources/few-shot-prompting"},{"title":"Zero-shot Prompting","href":"/en/_internal/resources/zero-shot-prompting"},{"title":"SCIM Pending Users","href":"/en/_internal/settings/scim-pending-users"}]}]},{"tab":"Developer","pages":[{"title":"Developer","href":"/en/developer/overview/api-introduction"}]},{"tab":"Admin","pages":[{"title":"Admin","href":"/en/admin/workspace/workspace"}]}]},{"language":"de","pages":[{"title":"de","href":"/de/using-langdock/account/personal-api-keys"}]}]},"basePath":"","title":"Personal API keys - Docs","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-5Xwp92K7.js","DynamicMarkdown-BoyYAA8K.js","zoom-image-lightbox-DkE6VzSN.js","lightbox-handle-r17bVUz3.js"]}