Confirm that Overview → Live model service is enabled. Before activation, inference and management key creation is disabled; request activation first. A top-up alone does not complete activation.
Open API Keys and create a key with a descriptive name.
Copy the key immediately.
Copy the key when it is created. To see it again later, choose View in the key list and confirm it’s you with a passkey or an emailed code. Keys created before this was available store only a SHA-256 hash and cannot be shown again; rotate one to get a viewable replacement.
A key belongs to one person inside a workspace, so it works only while that account does. Two workspace actions revoke keys without anyone opening the key list:
An owner or admin suspends a member. Every key that member holds returns 401 unauthorized from the next request.
A member deletes their own account. Deletion revokes their keys immediately and ends their sessions. The account row is kept for a grace period so past usage can still be reconciled, but the keys never come back.
Other members’ keys are unaffected either way. If a service has to outlive the person who set it up, issue its key from an account that stays.
A key can carry an optional lifetime budget in micro-USD. Real calls require available key allowance to cover the reservation. Insufficient allowance returns 402 inference_budget_or_access_denied; other keys keep working.
Console sign-in uses a browser session, distinct from inference and management keys. Use the avatar menu to Add account, then switch between saved accounts without merging their workspaces or balances. An expired session requires signing in again. Signing out affects the selected browser account; it does not revoke that account’s API keys. Revoke keys separately under API Keys when required. View your login activity under Settings → Login history. See User manual and Data handling.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OmniRelay Documentation","description":"One OpenAI-compatible API for every model: keys, routing, usage and billing in one gateway.","colors":{"primary":"#3155f5","light":"#7d95ff","dark":"#3155f5"},"logo":{"light":"https://mintcdn.com/mirvos/m9J_0EZqJ57fDiaC/logo.svg?fit=max\u0026auto=format\u0026n=m9J_0EZqJ57fDiaC\u0026q=85\u0026s=ca602e0318071154028ed8989c7110cc","dark":"https://mintcdn.com/mirvos/m9J_0EZqJ57fDiaC/logo.svg?fit=max\u0026auto=format\u0026n=m9J_0EZqJ57fDiaC\u0026q=85\u0026s=ca602e0318071154028ed8989c7110cc","href":"https://omnirelay.ai"},"favicon":"https://mintcdn.com/mirvos/m9J_0EZqJ57fDiaC/favicon.svg?fit=max\u0026auto=format\u0026n=m9J_0EZqJ57fDiaC\u0026q=85\u0026s=87700ecee580e455626d4376f120e405","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","python","javascript"]}},"appearance":{"default":"system"},"navbar":{"links":[{"href":"https://omnirelay.ai","label":"Website"},{"href":"https://omnirelay.instatus.com","label":"Status"}],"primary":{"type":"button","label":"Open Console","href":"https://omnirelay.ai/login"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","href":""},{"language":"cn","navbar":{"links":[{"href":"https://omnirelay.ai","label":"官网"},{"href":"https://omnirelay.instatus.com","label":"服务状态"}],"primary":{"type":"button","label":"打开控制台","href":"https://omnirelay.ai/login"}},"href":"cn"},{"language":"es","navbar":{"links":[{"href":"https://omnirelay.ai","label":"Sitio web"},{"href":"https://omnirelay.instatus.com","label":"Estado"}],"primary":{"type":"button","label":"Abrir consola","href":"https://omnirelay.ai/login"}},"href":"es/user-manual"},{"language":"fr","navbar":{"links":[{"href":"https://omnirelay.ai","label":"Site web"},{"href":"https://omnirelay.instatus.com","label":"État du service"}],"primary":{"type":"button","label":"Ouvrir la console","href":"https://omnirelay.ai/login"}},"href":"fr/user-manual"},{"language":"de","navbar":{"links":[{"href":"https://omnirelay.ai","label":"Website"},{"href":"https://omnirelay.instatus.com","label":"Dienststatus"}],"primary":{"type":"button","label":"Konsole öffnen","href":"https://omnirelay.ai/login"}},"href":"de/user-manual"},{"language":"pt-BR","navbar":{"links":[{"href":"https://omnirelay.ai","label":"Site"},{"href":"https://omnirelay.instatus.com","label":"Status"}],"primary":{"type":"button","label":"Abrir console","href":"https://omnirelay.ai/login"}},"href":"pt-BR/user-manual"},{"language":"jp","navbar":{"links":[{"href":"https://omnirelay.ai","label":"ウェブサイト"},{"href":"https://omnirelay.instatus.com","label":"サービス状況"}],"primary":{"type":"button","label":"コンソールを開く","href":"https://omnirelay.ai/login"}},"href":"jp/user-manual"},{"language":"ko","navbar":{"links":[{"href":"https://omnirelay.ai","label":"웹사이트"},{"href":"https://omnirelay.instatus.com","label":"서비스 상태"}],"primary":{"type":"button","label":"콘솔 열기","href":"https://omnirelay.ai/login"}},"href":"ko/user-manual"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"mirvos","hasAudioNarration":false,"actualSubdomain":"mirvos","customDomains":["omnirelay.ai"],"gitSource":{"type":"github","owner":"mirvos-ai","repo":"omnirelay-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6aea0b3298ee2cfbfea93cfe","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"cn","tag":"V1 文档","count":24},{"language":"en","tag":"V1 Documentation","count":24},{"language":"cn","tag":"V1 API 参考","count":18},{"language":"en","tag":"V1 API Reference","count":18},{"language":"cn","tag":"管理 API","count":9},{"language":"en","tag":"Management","count":9},{"language":"cn","tag":"通用","count":8},{"language":"en","tag":"General","count":8},{"language":"cn","tag":"LLM","count":4},{"language":"cn","tag":"视频","count":4},{"language":"en","tag":"LLMs","count":4},{"language":"en","tag":"Videos","count":4},{"language":"cn","tag":"图片","count":3},{"language":"cn","tag":"概览","count":3},{"language":"cn","tag":"快速开始","count":3},{"language":"de","tag":"V1-Dokumentation","count":3},{"language":"es","tag":"Documentación V1","count":3},{"language":"fr","tag":"Documentation V1","count":3},{"language":"en","tag":"Images","count":3},{"language":"en","tag":"Overview","count":3},{"language":"en","tag":"Quick Start","count":3},{"language":"jp","tag":"V1 ドキュメント","count":3},{"language":"ko","tag":"V1 문서","count":3},{"language":"pt-BR","tag":"Documentação V1","count":3},{"language":"de","tag":"Allgemein","count":2},{"language":"es","tag":"General","count":2},{"language":"fr","tag":"Général","count":2},{"language":"jp","tag":"一般","count":2},{"language":"ko","tag":"일반","count":2},{"language":"pt-BR","tag":"Geral","count":2},{"language":"cn","tag":"用户手册","count":1},{"language":"de","tag":"Benutzerhandbuch","count":1},{"language":"es","tag":"Manual de usuario","count":1},{"language":"fr","tag":"Guide utilisateur","count":1},{"language":"en","tag":"User manual","count":1},{"language":"jp","tag":"ユーザーマニュアル","count":1},{"language":"ko","tag":"사용자 매뉴얼","count":1},{"language":"pt-BR","tag":"Manual do usuário","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"overview/authentication","slug":"/overview/authentication","pageMetadata":{"title":"Authentication","description":"Use Bearer authentication with inference API keys or separate management keys.","icon":"key","href":"/overview/authentication"},"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: \"Use Bearer authentication with inference API keys or separate management keys.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`/v1/models`}),` and `,_jsx(_components.code,{children:`/v1/chat/completions`}),` use API keys; `,_jsx(_components.code,{children:`/v1/manage/*`}),` uses management keys. See `,_jsx(_components.a,{href:`/general/management-api`,children:`Management API`}),`. `,_jsx(_components.code,{children:`GET /health`}),` is public.`]}),`\n`,_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:`Authorization:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Bearer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $OMNIRELAY_API_KEY`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-key`,children:`Create a key`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Sign in to the `,_jsx(_components.a,{href:`https://omnirelay.ai/login`,children:`console`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Confirm that `,_jsx(_components.strong,{children:`Overview → Live model service`}),` is enabled. Before activation, inference and management key creation is disabled; request activation first. A top-up alone does not complete activation.`]}),`\n`,_jsxs(_components.li,{children:[`Open `,_jsx(_components.strong,{children:`API Keys`}),` and create a key with a descriptive name.`]}),`\n`,_jsx(_components.li,{children:`Copy the key immediately.`}),`\n`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Copy the key when it is created. To see it again later, choose `,_jsx(_components.strong,{children:`View`}),` in the key list and confirm it’s you with a passkey or an emailed code. Keys created before this was available store only a SHA-256 hash and cannot be shown again; rotate one to get a viewable replacement.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`revoke-a-key`,children:`Revoke a key`}),`\n`,_jsx(_components.p,{children:`Revoking a key in the console takes effect on the next request. Requests with a revoked or unknown key return:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"unauthorized\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } }`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`keys-follow-the-account`,children:`Keys follow the account`}),`\n`,_jsx(_components.p,{children:`A key belongs to one person inside a workspace, so it works only while that account does. Two workspace actions revoke keys without anyone opening the key list:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`An owner or admin suspends a member.`}),` Every key that member holds returns `,_jsx(_components.code,{children:`401 unauthorized`}),` from the next request.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`A member deletes their own account.`}),` Deletion revokes their keys immediately and ends their sessions. The account row is kept for a grace period so past usage can still be reconciled, but the keys never come back.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Other members’ keys are unaffected either way. If a service has to outlive the person who set it up, issue its key from an account that stays.`}),`\n`,_jsx(Heading,{level:`2`,id:`per-key-budgets`,children:`Per-key budgets`}),`\n`,_jsxs(_components.p,{children:[`A key can carry an optional lifetime budget in micro-USD. Real calls require available key allowance to cover the reservation. Insufficient allowance returns `,_jsx(_components.code,{children:`402 inference_budget_or_access_denied`}),`; other keys keep working.`]}),`\n`,_jsx(Heading,{level:`2`,id:`limit-a-key-to-some-models`,children:`Limit a key to some models`}),`\n`,_jsxs(_components.p,{children:[`A key can be limited to the models it needs. In `,_jsx(_components.strong,{children:`Key settings`}),` (or when creating a key), turn on `,_jsx(_components.strong,{children:`Only let this key call the models selected`}),` and choose:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`A whole provider`}),`, such as all Anthropic models. This covers models the provider adds later.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Individual models`}),`, by ID.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`With a limit in place:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A call to any other model returns `,_jsx(_components.code,{children:`403 model_not_allowed`}),`. It is recorded on the `,_jsx(_components.strong,{children:`Usage`}),` page as a failed request and is never charged.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`GET /v1/models`}),` lists only the models the key may call, so an SDK or tool never offers one that would be refused.`]}),`\n`,_jsx(_components.li,{children:`Rotating the key keeps the limit. Turning the limit off opens every model in the workspace again.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Real playground calls and the API debug tool use the key you select and enforce its model restrictions, budget and expiry.`}),`\n`,_jsx(Heading,{level:`2`,id:`keep-keys-server-side`,children:`Keep keys server-side`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Store keys in environment variables or a secret manager.`}),`\n`,_jsx(_components.li,{children:`Never ship a key in browser or mobile code, and never commit one to a repository.`}),`\n`,_jsx(_components.li,{children:`Use one key per service so a leak can be revoked without downtime elsewhere.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`console-accounts-and-sessions`,children:`Console accounts and sessions`}),`\n`,_jsxs(_components.p,{children:[`Console sign-in uses a browser session, distinct from inference and management keys. Use the avatar menu to `,_jsx(_components.strong,{children:`Add account`}),`, then switch between saved accounts without merging their workspaces or balances. An expired session requires signing in again. Signing out affects the selected browser account; it does not revoke that account’s API keys. Revoke keys separately under `,_jsx(_components.strong,{children:`API Keys`}),` when required. View your login activity under `,_jsx(_components.strong,{children:`Settings → Login history`}),`. See `,_jsx(_components.a,{href:`/user-manual`,children:`User manual`}),` and `,_jsx(_components.a,{href:`/general/data-handling`,children:`Data handling`}),`.`]})]})}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":"Authentication","description":"Use Bearer authentication with inference API keys or separate management keys.","icon":"key","href":"/overview/authentication"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Create a key","slug":"create-a-key","depth":2,"children":[]},{"title":"Revoke a key","slug":"revoke-a-key","depth":2,"children":[]},{"title":"Keys follow the account","slug":"keys-follow-the-account","depth":2,"children":[]},{"title":"Per-key budgets","slug":"per-key-budgets","depth":2,"children":[]},{"title":"Limit a key to some models","slug":"limit-a-key-to-some-models","depth":2,"children":[]},{"title":"Keep keys server-side","slug":"keep-keys-server-side","depth":2,"children":[]},{"title":"Console accounts and sessions","slug":"console-accounts-and-sessions","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"mirvos","siteName":"OmniRelay Documentation","title":"Authentication - OmniRelay Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/overview/authentication","matchLevel":0},"cn":{"href":"/cn/overview/authentication","matchLevel":1},"es":{"href":"/es/user-manual","matchLevel":4},"fr":{"href":"/fr/user-manual","matchLevel":4},"de":{"href":"/de/user-manual","matchLevel":4},"pt-BR":{"href":"/pt-BR/user-manual","matchLevel":4},"jp":{"href":"/jp/user-manual","matchLevel":4},"ko":{"href":"/ko/user-manual","matchLevel":4}}},"lastModified":"2026-10-11T11:30:20.925Z","originalFileLocation":"overview/authentication.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=\"Use Bearer authentication with inference API keys or separate management keys.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OmniRelay Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/mirvos/6nifCMTl7rKBlB9L/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/mirvos/6nifCMTl7rKBlB9L/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/mirvos/6nifCMTl7rKBlB9L/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/mirvos/6nifCMTl7rKBlB9L/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/mirvos/6nifCMTl7rKBlB9L/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/mirvos/6nifCMTl7rKBlB9L/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/mirvos/6nifCMTl7rKBlB9L/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/mirvos/6nifCMTl7rKBlB9L/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/mirvos/6nifCMTl7rKBlB9L/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Authentication - OmniRelay Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Use Bearer authentication with inference API keys or separate management keys.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OmniRelay Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://omnirelay.ai/docs/overview/authentication\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://mirvos.mintlify.site/docs/_mintlify/api/og/v2?division=Overview\u0026amp;title=Authentication\u0026amp;description=Use+Bearer+authentication+with+inference+API+keys+or+separate+management+keys.\u0026amp;theme=43c50d0778dfe81e3173fcea\u0026amp;signature=85b70fd259d988841c35a4e898e0c13422c03fdc53bf32226262d9577465accf\">\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=\"Authentication - OmniRelay Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Use Bearer authentication with inference API keys or separate management keys.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mirvos.mintlify.site/docs/_mintlify/api/og/v2?division=Overview\u0026amp;title=Authentication\u0026amp;description=Use+Bearer+authentication+with+inference+API+keys+or+separate+management+keys.\u0026amp;theme=43c50d0778dfe81e3173fcea\u0026amp;signature=85b70fd259d988841c35a4e898e0c13422c03fdc53bf32226262d9577465accf\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/mirvos/6nifCMTl7rKBlB9L/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OmniRelay Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3155f5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://omnirelay.ai/docs/overview/authentication\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/overview/authentication.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://omnirelay.ai/docs/overview/authentication\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://omnirelay.ai/docs/cn/overview/authentication\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://omnirelay.ai/docs/overview/authentication\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://omnirelay.ai/#organization\",\"name\":\"OmniRelay Documentation\",\"url\":\"https://omnirelay.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/mirvos/m9J_0EZqJ57fDiaC/logo.svg?fit=max\u0026auto=format\u0026n=m9J_0EZqJ57fDiaC\u0026q=85\u0026s=ca602e0318071154028ed8989c7110cc\"}},{\"@type\":\"WebSite\",\"@id\":\"https://omnirelay.ai/docs#website\",\"name\":\"OmniRelay Documentation\",\"url\":\"https://omnirelay.ai/docs\",\"publisher\":{\"@id\":\"https://omnirelay.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://omnirelay.ai/docs/overview/authentication#webpage\",\"url\":\"https://omnirelay.ai/docs/overview/authentication\",\"name\":\"Authentication\",\"description\":\"Use Bearer authentication with inference API keys or separate management keys.\",\"dateModified\":\"2026-10-11T11:30:20.925Z\",\"isPartOf\":{\"@id\":\"https://omnirelay.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://omnirelay.ai/docs/overview/authentication#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://omnirelay.ai/docs/overview/authentication#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Overview\",\"item\":\"https://omnirelay.ai/docs/overview/unified-gateway\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Authentication\",\"item\":\"https://omnirelay.ai/docs/overview/authentication\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://omnirelay.ai/docs/overview/authentication#article\",\"headline\":\"Authentication\",\"name\":\"Authentication\",\"description\":\"Use Bearer authentication with inference API keys or separate management keys.\",\"url\":\"https://omnirelay.ai/docs/overview/authentication\",\"mainEntityOfPage\":{\"@id\":\"https://omnirelay.ai/docs/overview/authentication#webpage\"},\"dateModified\":\"2026-10-11T11:30:20.925Z\",\"publisher\":{\"@id\":\"https://omnirelay.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://omnirelay.ai/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OmniRelay Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"OmniRelay Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/overview/authentication.md","siteName":"OmniRelay Documentation","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"V1 Documentation","groups":[{"group":"V1 Documentation","pages":[{"title":"OmniRelay Documentation","sidebarTitle":"Introduction","href":""}]},{"group":"Quick Start","pages":[{"title":"Creating an account","icon":"ticket","href":"/quickstart/joining-the-beta"},{"title":"First API call","icon":"rocket","href":"/quickstart/first-api-call"},{"title":"Set up with an AI agent","icon":"wand-magic-sparkles","href":"/quickstart/ai-agent-setup"}]},{"group":"User manual","pages":[{"title":"User manual","icon":"book-open","href":"/user-manual"}]},{"group":"Overview","pages":[{"title":"Unified gateway","description":"What OmniRelay does between your request and the model.","icon":"network-wired","href":"/overview/unified-gateway"},{"title":"Authentication","icon":"key","href":"/overview/authentication"},{"title":"Rate limits","description":"Request rate, concurrency, key IP allowlists and payload limits enforced by the gateway.","icon":"gauge","href":"/overview/rate-limits"}]},{"group":"LLMs","pages":[{"title":"List models","icon":"list","href":"/llms/listing-models"},{"title":"Chat completions","icon":"message","href":"/llms/chat-completions"},{"title":"Responses and embeddings","icon":"code","href":"/llms/native-protocols"},{"title":"Request metadata","icon":"receipt","href":"/llms/request-metadata"}]},{"group":"Images","pages":[{"title":"Image generation and editing","icon":"image","href":"/images/image-generation"}]},{"group":"Videos","pages":[{"title":"Video generation","icon":"video","href":"/videos/video-generation"},{"title":"Video understanding","icon":"film","href":"/videos/video-understanding"}]},{"group":"General","pages":[{"title":"Usage and billing","icon":"receipt","href":"/general/usage-billing"},{"title":"Model access and request diagnostics","icon":"plug","href":"/general/provider-integration"},{"title":"Tags","icon":"tags","href":"/general/tags"},{"title":"Management API","icon":"sliders","href":"/general/management-api"},{"title":"Data handling","icon":"shield-check","href":"/general/data-handling"},{"title":"Errors","icon":"triangle-exclamation","href":"/general/errors"},{"title":"Service boundaries","icon":"circle-info","href":"/general/service-boundaries"},{"title":"OmniRelay console assistant","icon":"sparkles","href":"/general/console-assistant"}]}]},{"tab":"V1 API Reference","pages":[{"title":"V1 API Reference","href":"/api-reference/service/health-check"}]}]},{"language":"cn","navbar":{"links":[{"href":"https://omnirelay.ai","label":"官网"},{"href":"https://omnirelay.instatus.com","label":"服务状态"}],"primary":{"type":"button","label":"打开控制台","href":"https://omnirelay.ai/login"}},"pages":[{"title":"cn","href":"/cn/overview/authentication"}]},{"language":"es","navbar":{"links":[{"href":"https://omnirelay.ai","label":"Sitio web"},{"href":"https://omnirelay.instatus.com","label":"Estado"}],"primary":{"type":"button","label":"Abrir consola","href":"https://omnirelay.ai/login"}},"pages":[{"title":"es","href":"/es/user-manual"}]},{"language":"fr","navbar":{"links":[{"href":"https://omnirelay.ai","label":"Site web"},{"href":"https://omnirelay.instatus.com","label":"État du service"}],"primary":{"type":"button","label":"Ouvrir la console","href":"https://omnirelay.ai/login"}},"pages":[{"title":"fr","href":"/fr/user-manual"}]},{"language":"de","navbar":{"links":[{"href":"https://omnirelay.ai","label":"Website"},{"href":"https://omnirelay.instatus.com","label":"Dienststatus"}],"primary":{"type":"button","label":"Konsole öffnen","href":"https://omnirelay.ai/login"}},"pages":[{"title":"de","href":"/de/user-manual"}]},{"language":"pt-BR","navbar":{"links":[{"href":"https://omnirelay.ai","label":"Site"},{"href":"https://omnirelay.instatus.com","label":"Status"}],"primary":{"type":"button","label":"Abrir console","href":"https://omnirelay.ai/login"}},"pages":[{"title":"pt-BR","href":"/pt-BR/user-manual"}]},{"language":"jp","navbar":{"links":[{"href":"https://omnirelay.ai","label":"ウェブサイト"},{"href":"https://omnirelay.instatus.com","label":"サービス状況"}],"primary":{"type":"button","label":"コンソールを開く","href":"https://omnirelay.ai/login"}},"pages":[{"title":"jp","href":"/jp/user-manual"}]},{"language":"ko","navbar":{"links":[{"href":"https://omnirelay.ai","label":"웹사이트"},{"href":"https://omnirelay.instatus.com","label":"서비스 상태"}],"primary":{"type":"button","label":"콘솔 열기","href":"https://omnirelay.ai/login"}},"pages":[{"title":"ko","href":"/ko/user-manual"}]}]},"basePath":"","title":"Authentication - OmniRelay Documentation","buildId":"dpl_6PxPD4Fj1JDU9BJxEHvfdUmxKThw","deploymentId":"dpl_6PxPD4Fj1JDU9BJxEHvfdUmxKThw","dynamics":[],"chunks":[]}