{
"error": {
"code": "model_unavailable",
"message": "The model does not exist or is disabled.",
"type": "not_found_error",
"param": "<string>"
},
"request_id": "<string>"
}
Calls an enabled model with its protocol-specific reviewed capabilities. Query GET /v1/models for tools, JSON formats, sampling, reasoning and combination restrictions. Capability review covers every callable route. New combinations are documentation-based, pending individual live validation. Reserves and settles validated usage; disable automatic SDK retries. Responses is stateless/store:false; hosted tools and stored IDs are unsupported. All callable routes use parameter passthrough (parameter_policy upstream-first). Capability lists are guidance, not local rejection lists; ordinary schemas and extension fields are forwarded. Native responses/reasoning output is retained. Model provider 400/422 rejections release holds; provider failures, timeouts and interrupted streams need reconciliation.
{
"error": {
"code": "model_unavailable",
"message": "The model does not exist or is disabled.",
"type": "not_found_error",
"param": "<string>"
},
"request_id": "<string>"
}
Tags for this call as comma-separated key=value pairs, for example client=acme,env=prod. Merged with the API key's default tags; the tags body field wins on the same key. X-OmniRelay-Tags is the same header under its former name and stays accepted.
Send enabled to receive a gateway_metadata block describing what the gateway decided. Any other value, or no header, leaves the response unchanged. X-OmniRelay-Metadata is the same header under its former name and stays accepted.
Available options:
enabled
Body
application/json
Parameter passthrough: ordinary extension fields are forwarded; authentication, text/function protocol and budget settlement boundaries remain enforced.
1 to 2000 text messages within the model context contract. Request body limit: 4 MiB (4194304 bytes of UTF-8). Provider-context-ceiling reserves input/output separately; the provider validates actual context fit.
Tags for this call. At most 10 after merging with the header and the key's default tags. Keys are 1 to 64 characters and stored in lowercase; values are 1 to 128 characters. Both use only letters, digits and - _ . : /. Keys starting with gateway: or omnirelay: are reserved. A tags field that is not an object is ignored.
Live only. Positive integer; send one output-limit field, never both. The gateway normalizes it for the model. Read limits.output_tokens and limits.default_output_tokens from your model list; GPT 5.4 Mini uses 64/256; most other integrated text routes default to 32,000 up to 128,000 (Gemini 3.1 Pro Preview and Gemini 3.6 Flash: 65,536); DeepSeek V4 Pro, GLM 5.3 and Kimi K3 use 4,096/4,096.
Live only. Positive integer; send one output-limit field, never both. The gateway normalizes it for the model. Read limits.output_tokens and limits.default_output_tokens from your model list; GPT 5.4 Mini uses 64/256; most other integrated text routes default to 32,000 up to 128,000 (Gemini 3.1 Pro Preview and Gemini 3.6 Flash: 65,536); DeepSeek V4 Pro, GLM 5.3 and Kimi K3 use 4,096/4,096.
Live only when tools are supported. Function tools only; strict tools and JSON Schema keywords require separate support. See the provider integration guide.
Settled customer charge in micro-USD, using frozen prices, token partitions, tiers and discount. Round the full sum, apply the discount and round up again. This is the final charge, not the maximum hold.
Present only when the request sent X-Gateway-Metadata: enabled. Returned under both gateway_metadata and its former name omnirelay_metadata, with the same content. On a stream it rides the first chunk.
Present only when the request sent X-Gateway-Metadata: enabled. Returned under both gateway_metadata and its former name omnirelay_metadata, with the same content. On a stream it rides the first chunk.
Show child attributes
{"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":"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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/chat/create-chat-completion","slug":"/api-reference/chat/create-chat-completion","pageMetadata":{"title":"Create chat completion","description":"Calls an enabled model with its protocol-specific reviewed capabilities. Query GET /v1/models for tools, JSON formats, sampling, reasoning and combination restrictions. Capability review covers every callable route. New combinations are documentation-based, pending individual live validation. Reserves and settles validated usage; disable automatic SDK retries. Responses is stateless/store:false; hosted tools and stored IDs are unsupported. All callable routes use parameter passthrough (parameter_policy upstream-first). Capability lists are guidance, not local rejection lists; ordinary schemas and extension fields are forwarded. Native responses/reasoning output is retained. Model provider 400/422 rejections release holds; provider failures, timeouts and interrupted streams need reconciliation.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/chat/completions","href":"/api-reference/chat/create-chat-completion","autogeneratedByOpenApi":true},"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: \"Calls an enabled model with its protocol-specific reviewed capabilities. Query GET /v1/models for tools, JSON formats, sampling, reasoning and combination restrictions. Capability review covers every callable route. New combinations are documentation-based, pending individual live validation. Reserves and settles validated usage; disable automatic SDK retries. Responses is stateless/store:false; hosted tools and stored IDs are unsupported. All callable routes use parameter passthrough (parameter_policy upstream-first). Capability lists are guidance, not local rejection lists; ordinary schemas and extension fields are forwarded. Native responses/reasoning output is retained. Model provider 400/422 rejections release holds; provider failures, timeouts and interrupted streams need reconciliation.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create chat completion","description":"Calls an enabled model with its protocol-specific reviewed capabilities. Query GET /v1/models for tools, JSON formats, sampling, reasoning and combination restrictions. Capability review covers every callable route. New combinations are documentation-based, pending individual live validation. Reserves and settles validated usage; disable automatic SDK retries. Responses is stateless/store:false; hosted tools and stored IDs are unsupported. All callable routes use parameter passthrough (parameter_policy upstream-first). Capability lists are guidance, not local rejection lists; ordinary schemas and extension fields are forwarded. Native responses/reasoning output is retained. Model provider 400/422 rejections release holds; provider failures, timeouts and interrupted streams need reconciliation.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/chat/completions","href":"/api-reference/chat/create-chat-completion","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Chat"],"summary":"Create chat completion","description":"Calls an enabled model with its protocol-specific reviewed capabilities. Query GET /v1/models for tools, JSON formats, sampling, reasoning and combination restrictions. Capability review covers every callable route. New combinations are documentation-based, pending individual live validation. Reserves and settles validated usage; disable automatic SDK retries. Responses is stateless/store:false; hosted tools and stored IDs are unsupported. All callable routes use parameter passthrough (parameter_policy upstream-first). Capability lists are guidance, not local rejection lists; ordinary schemas and extension fields are forwarded. Native responses/reasoning output is retained. Model provider 400/422 rejections release holds; provider failures, timeouts and interrupted streams need reconciliation.","operationId":"createChatCompletion","parameters":["cf756948-6022-4840-b130-bbcf0da7d1dd","9d03dc7d-6889-43b2-ab18-1958e2c3283f"],"requestBody":"eb22b87a-b25d-4890-baf7-88aabe2ae660","responses":{"200":"49d2ea6b-5e4c-4c17-bd10-9d806b2d26c4","400":"fa2bff99-7dfb-4446-b9cf-ead4bd8ce540","401":"286a3e3d-c7fa-4604-aca7-139217fe97f8","402":"ada03869-1a6a-4665-b529-db052f312fec","403":"e55573a0-d711-4c95-bfd8-dc539be134e5","404":"ea0e0493-8751-4500-a515-416cf7dc0d35","413":"9f0e3d66-41d7-4f87-a750-6a96bd8d82f8","429":"04a2d5ff-cc8c-4b81-a390-261b5c89bd17","502":"b4a6102d-b7ea-4f7b-a67b-9b5fbcc91ef3","503":"4ec9b6fd-689a-438c-abb5-8e6f198e182a"},"method":"post","type":"path","servers":["8343319b-fc64-466b-b314-1aa49367d633"],"security":["0cfd7c8d-004d-4e0d-96de-988610dc14a3"],"path":"/v1/chat/completions","baseUrlOptions":["https://api.omnirelay.ai"],"title":"Create chat completion","codeSamples":[],"requestExampleLanguages":["bash","python","javascript"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"cf756948-6022-4840-b130-bbcf0da7d1dd":{"name":"X-Gateway-Tags","in":"header","required":false,"description":"Tags for this call as comma-separated `key=value` pairs, for example `client=acme,env=prod`. Merged with the API key's default tags; the `tags` body field wins on the same key. `X-OmniRelay-Tags` is the same header under its former name and stays accepted.","schema":{"type":"string","isRequired":false,"description":"Tags for this call as comma-separated `key=value` pairs, for example `client=acme,env=prod`. Merged with the API key's default tags; the `tags` body field wins on the same key. `X-OmniRelay-Tags` is the same header under its former name and stays accepted.","uniqueKey":"","typeLabel":"string"},"example":"client=acme,env=prod"},"9d03dc7d-6889-43b2-ab18-1958e2c3283f":{"name":"X-Gateway-Metadata","in":"header","required":false,"description":"Send `enabled` to receive a `gateway_metadata` block describing what the gateway decided. Any other value, or no header, leaves the response unchanged. `X-OmniRelay-Metadata` is the same header under its former name and stays accepted.","schema":{"type":"string","enum":["enabled"],"isRequired":false,"description":"Send `enabled` to receive a `gateway_metadata` block describing what the gateway decided. Any other value, or no header, leaves the response unchanged. `X-OmniRelay-Metadata` is the same header under its former name and stays accepted.","uniqueKey":"","typeLabel":"enum\u003cstring>"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["model","messages"],"properties":{"model":{"type":"string","description":"An active model ID from `GET /v1/models`.","example":"gpt-6-luna","isRequired":true,"uniqueKey":"model","typeLabel":"string"},"messages":{"type":"array","minItems":1,"maxItems":2000,"description":"1 to 2000 text messages within the model context contract. Request body limit: 4 MiB (4194304 bytes of UTF-8). Provider-context-ceiling reserves input/output separately; the provider validates actual context fit.","items":{"type":"object","required":["role"],"properties":{"role":{"type":"string","enum":["system","developer","user","assistant","tool"],"isRequired":true,"uniqueKey":"messages.items.[INDEX].role","typeLabel":"enum\u003cstring>"},"content":{"oneOf":[{"type":"string","description":"Text values or text parts: at most 1048576 characters per text value, within the 4 MiB request body limit and the model context window. Roles require model capability support.","maxLength":1048576,"uniqueKey":"messages.items.[INDEX].content.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"type":"string","enum":["text"],"isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","maxLength":1048576,"isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].text","typeLabel":"string"}},"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX]","typeLabel":"object"},"description":"Text values or text parts: at most 1048576 characters per text value, within the 4 MiB request body limit and the model context window. Roles require model capability support.","maxItems":64,"uniqueKey":"messages.items.[INDEX].content.oneOf.1","typeLabel":"object[]"},{"type":"null","description":"Text values or text parts: at most 1048576 characters per text value, within the 4 MiB request body limit and the model context window. Roles require model capability support.","uniqueKey":"messages.items.[INDEX].content.oneOf.2","typeLabel":"null"}],"uniqueKey":"messages.items.[INDEX].content","typeLabel":"string | object[] | null"},"name":{"type":"string","maxLength":64,"uniqueKey":"messages.items.[INDEX].name","typeLabel":"string"},"tool_call_id":{"type":"string","uniqueKey":"messages.items.[INDEX].tool_call_id","typeLabel":"string"},"tool_calls":{"type":"array","maxItems":64,"items":{"type":"object","required":["id","type","function"],"properties":{"id":{"type":"string","maxLength":128,"isRequired":true,"uniqueKey":"messages.items.[INDEX].tool_calls.items.[INDEX].id","typeLabel":"string"},"type":{"type":"string","enum":["function"],"isRequired":true,"uniqueKey":"messages.items.[INDEX].tool_calls.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"function":{"type":"object","required":["name","arguments"],"properties":{"name":{"type":"string","maxLength":64,"isRequired":true,"uniqueKey":"messages.items.[INDEX].tool_calls.items.[INDEX].function.name","typeLabel":"string"},"arguments":{"type":"string","maxLength":65536,"isRequired":true,"uniqueKey":"messages.items.[INDEX].tool_calls.items.[INDEX].function.arguments","typeLabel":"string"}},"isRequired":true,"uniqueKey":"messages.items.[INDEX].tool_calls.items.[INDEX].function","typeLabel":"object"}},"uniqueKey":"messages.items.[INDEX].tool_calls.items.[INDEX]","typeLabel":"object"},"uniqueKey":"messages.items.[INDEX].tool_calls","typeLabel":"object[]"},"reasoning_content":{"oneOf":[{"type":"string","maxLength":1048576,"description":"Assistant reasoning history only when reasoning_history is advertised, including DeepSeek tool turns.","uniqueKey":"messages.items.[INDEX].reasoning_content.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":1048576,"description":"Assistant reasoning history only when reasoning_history is advertised, including DeepSeek tool turns.","uniqueKey":"messages.items.[INDEX].reasoning_content.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.items.[INDEX].reasoning_content","typeLabel":"string | null"}},"uniqueKey":"messages.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"messages","typeLabel":"object[]"},"stream":{"type":"boolean","description":"Deliver the answer as server-sent events instead of one JSON body.","default":false,"uniqueKey":"stream","typeLabel":"boolean"},"stream_options":{"type":"object","description":"Only read when `stream` is true.","properties":{"include_usage":{"type":"boolean","description":"On successful SSE, request a final empty-choices chunk with usage and settled cost_microusd. Final usage is always collected.","default":false,"uniqueKey":"stream_options.include_usage","typeLabel":"boolean"}},"uniqueKey":"stream_options","typeLabel":"object"},"tags":{"type":"object","description":"Tags for this call. At most 10 after merging with the header and the key's default tags. Keys are 1 to 64 characters and stored in lowercase; values are 1 to 128 characters. Both use only letters, digits and `- _ . : /`. Keys starting with `gateway:` or `omnirelay:` are reserved. A `tags` field that is not an object is ignored.","additionalProperties":{"type":"string","uniqueKey":"tags.additionalProperties","typeLabel":"string"},"example":{"client":"acme","project":"invoices"},"uniqueKey":"tags","typeLabel":"object"},"max_tokens":{"type":"integer","minimum":1,"description":"Live only. Positive integer; send one output-limit field, never both. The gateway normalizes it for the model. Read limits.output_tokens and limits.default_output_tokens from your model list; GPT 5.4 Mini uses 64/256; most other integrated text routes default to 32,000 up to 128,000 (Gemini 3.1 Pro Preview and Gemini 3.6 Flash: 65,536); DeepSeek V4 Pro, GLM 5.3 and Kimi K3 use 4,096/4,096.","uniqueKey":"max_tokens","typeLabel":"integer"},"max_completion_tokens":{"type":"integer","minimum":1,"description":"Live only. Positive integer; send one output-limit field, never both. The gateway normalizes it for the model. Read limits.output_tokens and limits.default_output_tokens from your model list; GPT 5.4 Mini uses 64/256; most other integrated text routes default to 32,000 up to 128,000 (Gemini 3.1 Pro Preview and Gemini 3.6 Flash: 65,536); DeepSeek V4 Pro, GLM 5.3 and Kimi K3 use 4,096/4,096.","uniqueKey":"max_completion_tokens","typeLabel":"integer"},"temperature":{"type":"number","minimum":0,"maximum":2,"description":"Forwarded; the model provider decides and may ignore unsupported values. Consult model-specific documented guidance.","uniqueKey":"temperature","typeLabel":"number"},"top_p":{"type":"number","minimum":0,"maximum":1,"description":"Forwarded; the model provider decides and may ignore unsupported values. Consult model-specific documented guidance.","uniqueKey":"top_p","typeLabel":"number"},"frequency_penalty":{"type":"number","minimum":-2,"maximum":2,"description":"Live only and only when supported by the reviewed endpoint.","uniqueKey":"frequency_penalty","typeLabel":"number"},"presence_penalty":{"type":"number","minimum":-2,"maximum":2,"description":"Live only and only when supported by the reviewed endpoint.","uniqueKey":"presence_penalty","typeLabel":"number"},"seed":{"type":"integer","description":"Live only and only when supported by the reviewed endpoint.","uniqueKey":"seed","typeLabel":"integer"},"stop":{"oneOf":[{"type":"string","description":"Live only and only when supported by the reviewed endpoint.","maxLength":256,"uniqueKey":"stop.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","maxLength":256,"uniqueKey":"stop.oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"Live only and only when supported by the reviewed endpoint.","maxItems":4,"minItems":1,"uniqueKey":"stop.oneOf.1","typeLabel":"string[]"}],"uniqueKey":"stop","typeLabel":"string | string[]"},"n":{"type":"integer","enum":[1],"description":"Live only. Multiple completions per request are not supported.","uniqueKey":"n","typeLabel":"enum\u003cinteger>"},"tools":{"type":"array","minItems":1,"maxItems":64,"items":{"type":"object","required":["type","function"],"properties":{"type":{"type":"string","enum":["function"],"isRequired":true,"uniqueKey":"tools.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"function":{"type":"object","required":["name"],"properties":{"name":{"type":"string","maxLength":64,"isRequired":true,"uniqueKey":"tools.items.[INDEX].function.name","typeLabel":"string"},"description":{"type":"string","maxLength":4096,"uniqueKey":"tools.items.[INDEX].function.description","typeLabel":"string"},"parameters":{"type":"object","uniqueKey":"tools.items.[INDEX].function.parameters","typeLabel":"object"},"strict":{"type":"boolean","uniqueKey":"tools.items.[INDEX].function.strict","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"tools.items.[INDEX].function","typeLabel":"object"}},"uniqueKey":"tools.items.[INDEX]","typeLabel":"object"},"description":"Live only when tools are supported. Function tools only; strict tools and JSON Schema keywords require separate support. See the provider integration guide.","uniqueKey":"tools","typeLabel":"object[]"},"tool_choice":{"oneOf":[{"type":"string","description":"Use auto, none or required when tool_choice is advertised. Named function selection additionally requires capabilities.named_tool_choice.","enum":["auto","none","required"],"uniqueKey":"tool_choice.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"object","description":"Use auto, none or required when tool_choice is advertised. Named function selection additionally requires capabilities.named_tool_choice.","required":["type","function"],"properties":{"type":{"type":"string","enum":["function"],"isRequired":true,"uniqueKey":"tool_choice.oneOf.1.type","typeLabel":"enum\u003cstring>"},"function":{"type":"object","required":["name"],"properties":{"name":{"type":"string","isRequired":true,"uniqueKey":"tool_choice.oneOf.1.function.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tool_choice.oneOf.1.function","typeLabel":"object"}},"uniqueKey":"tool_choice.oneOf.1","typeLabel":"object"}],"uniqueKey":"tool_choice","typeLabel":"enum\u003cstring> | object"},"parallel_tool_calls":{"type":"boolean","description":"Live only and only when supported by the reviewed endpoint.","uniqueKey":"parallel_tool_calls","typeLabel":"boolean"},"response_format":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["text","json_object","json_schema"],"isRequired":true,"uniqueKey":"response_format.type","typeLabel":"enum\u003cstring>"},"json_schema":{"type":"object","required":["name","schema"],"properties":{"name":{"type":"string","maxLength":64,"isRequired":true,"uniqueKey":"response_format.json_schema.name","typeLabel":"string"},"schema":{"type":"object","isRequired":true,"uniqueKey":"response_format.json_schema.schema","typeLabel":"object"},"description":{"type":"string","maxLength":4096,"uniqueKey":"response_format.json_schema.description","typeLabel":"string"},"strict":{"type":"boolean","uniqueKey":"response_format.json_schema.strict","typeLabel":"boolean"}},"uniqueKey":"response_format.json_schema","typeLabel":"object"}},"description":"Forwarded; the model provider decides and may ignore unsupported values. Consult model-specific documented guidance.","uniqueKey":"response_format","typeLabel":"object"},"reasoning_effort":{"type":"string","description":"Forwarded; the model provider decides and may ignore unsupported values. Consult model-specific documented guidance.","uniqueKey":"reasoning_effort","typeLabel":"string"},"thinking":{"type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"type":"string","enum":["enabled","disabled"],"isRequired":true,"uniqueKey":"thinking.type","typeLabel":"enum\u003cstring>"}},"description":"Only for models advertising thinking_modes; GLM 5.3 only accepts enabled.","uniqueKey":"thinking","typeLabel":"object"},"tool_stream":{"type":"boolean","description":"For models advertising tool_stream; true requires stream:true.","uniqueKey":"tool_stream","typeLabel":"boolean"}},"additionalProperties":true,"description":"Parameter passthrough: ordinary extension fields are forwarded; authentication, text/function protocol and budget settlement boundaries remain enforced.","uniqueKey":"","typeLabel":"object"},"examples":{"liveProvider":{"title":"liveProvider","value":{"model":"gpt-6-luna","messages":[{"role":"system","content":"Answer concisely."},{"role":"user","content":"Hello OmniRelay"}],"max_completion_tokens":64,"reasoning_effort":"none"}},"liveStream":{"title":"liveStream","value":{"model":"deepseek-v4-pro","messages":[{"role":"user","content":"Hello OmniRelay"}],"max_tokens":128,"stream":true,"stream_options":{"include_usage":true}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"49d2ea6b-5e4c-4c17-bd10-9d806b2d26c4":{"description":"Completion with settled usage and cost, or an SSE stream. A failed stream may emit an error after HTTP 200 and ends without [DONE].","headers":{"X-Request-ID":{"description":"OmniRelay request ID for diagnostics. It is separate from the provider trace, header and response IDs.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["id","object","created","model","choices","usage","cost_microusd"],"properties":{"id":{"type":"string","example":"chatcmpl-2f6c1d0e9a","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"object":{"type":"string","enum":["chat.completion"],"isRequired":true,"uniqueKey":"object","typeLabel":"enum\u003cstring>"},"created":{"type":"integer","description":"Unix timestamp in seconds.","isRequired":true,"uniqueKey":"created","typeLabel":"integer"},"model":{"type":"string","isRequired":true,"uniqueKey":"model","typeLabel":"string"},"choices":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","uniqueKey":"choices.items.[INDEX].index","typeLabel":"integer"},"message":{"type":"object","required":["role"],"properties":{"role":{"type":"string","enum":["system","developer","user","assistant","tool"],"isRequired":true,"uniqueKey":"choices.items.[INDEX].message.role","typeLabel":"enum\u003cstring>"},"content":{"oneOf":[{"type":"string","description":"Text values or text parts: at most 1048576 characters per text value, within the 4 MiB request body limit and the model context window. Roles require model capability support.","maxLength":1048576,"uniqueKey":"choices.items.[INDEX].message.content.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"type":"string","enum":["text"],"isRequired":true,"uniqueKey":"choices.items.[INDEX].message.content.oneOf.1.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","maxLength":1048576,"isRequired":true,"uniqueKey":"choices.items.[INDEX].message.content.oneOf.1.items.[INDEX].text","typeLabel":"string"}},"uniqueKey":"choices.items.[INDEX].message.content.oneOf.1.items.[INDEX]","typeLabel":"object"},"description":"Text values or text parts: at most 1048576 characters per text value, within the 4 MiB request body limit and the model context window. Roles require model capability support.","maxItems":64,"uniqueKey":"choices.items.[INDEX].message.content.oneOf.1","typeLabel":"object[]"},{"type":"null","description":"Text values or text parts: at most 1048576 characters per text value, within the 4 MiB request body limit and the model context window. Roles require model capability support.","uniqueKey":"choices.items.[INDEX].message.content.oneOf.2","typeLabel":"null"}],"uniqueKey":"choices.items.[INDEX].message.content","typeLabel":"string | object[] | null"},"name":{"type":"string","maxLength":64,"uniqueKey":"choices.items.[INDEX].message.name","typeLabel":"string"},"tool_call_id":{"type":"string","uniqueKey":"choices.items.[INDEX].message.tool_call_id","typeLabel":"string"},"tool_calls":{"type":"array","maxItems":64,"items":{"type":"object","required":["id","type","function"],"properties":{"id":{"type":"string","maxLength":128,"isRequired":true,"uniqueKey":"choices.items.[INDEX].message.tool_calls.items.[INDEX].id","typeLabel":"string"},"type":{"type":"string","enum":["function"],"isRequired":true,"uniqueKey":"choices.items.[INDEX].message.tool_calls.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"function":{"type":"object","required":["name","arguments"],"properties":{"name":{"type":"string","maxLength":64,"isRequired":true,"uniqueKey":"choices.items.[INDEX].message.tool_calls.items.[INDEX].function.name","typeLabel":"string"},"arguments":{"type":"string","maxLength":65536,"isRequired":true,"uniqueKey":"choices.items.[INDEX].message.tool_calls.items.[INDEX].function.arguments","typeLabel":"string"}},"isRequired":true,"uniqueKey":"choices.items.[INDEX].message.tool_calls.items.[INDEX].function","typeLabel":"object"}},"uniqueKey":"choices.items.[INDEX].message.tool_calls.items.[INDEX]","typeLabel":"object"},"uniqueKey":"choices.items.[INDEX].message.tool_calls","typeLabel":"object[]"},"reasoning_content":{"type":"string","description":"Optional reasoning text returned only when the model capability reasoning_content is true. In SSE it appears in choices[].delta.reasoning_content. It is not a request field.","uniqueKey":"choices.items.[INDEX].message.reasoning_content","typeLabel":"string"}},"uniqueKey":"choices.items.[INDEX].message","typeLabel":"object"},"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter"],"uniqueKey":"choices.items.[INDEX].finish_reason","typeLabel":"enum\u003cstring>"}},"uniqueKey":"choices.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"choices","typeLabel":"object[]"},"usage":{"type":"object","description":"Validated provider usage; missing or invalid usage prevents automatic settlement. Prompt usage includes cache partitions; completion includes reasoning. Omitted detail counters do not erase token usage.","properties":{"prompt_tokens":{"type":"integer","isRequired":true,"uniqueKey":"usage.prompt_tokens","typeLabel":"integer"},"completion_tokens":{"type":"integer","isRequired":true,"uniqueKey":"usage.completion_tokens","typeLabel":"integer"},"total_tokens":{"type":"integer","isRequired":true,"uniqueKey":"usage.total_tokens","typeLabel":"integer"},"prompt_tokens_details":{"type":"object","properties":{"cached_tokens":{"type":"integer","minimum":0,"uniqueKey":"usage.prompt_tokens_details.cached_tokens","typeLabel":"integer"},"cache_write_tokens":{"type":"integer","minimum":0,"uniqueKey":"usage.prompt_tokens_details.cache_write_tokens","typeLabel":"integer"}},"uniqueKey":"usage.prompt_tokens_details","typeLabel":"object"},"completion_tokens_details":{"type":"object","properties":{"reasoning_tokens":{"type":"integer","minimum":0,"uniqueKey":"usage.completion_tokens_details.reasoning_tokens","typeLabel":"integer"}},"uniqueKey":"usage.completion_tokens_details","typeLabel":"object"}},"required":["prompt_tokens","completion_tokens","total_tokens"],"isRequired":true,"uniqueKey":"usage","typeLabel":"object"},"cost_microusd":{"type":"integer","description":"Settled customer charge in micro-USD, using frozen prices, token partitions, tiers and discount. Round the full sum, apply the discount and round up again. This is the final charge, not the maximum hold.","isRequired":true,"uniqueKey":"cost_microusd","typeLabel":"integer"},"omnirelay_metadata":{"type":"object","description":"Present only when the request sent `X-Gateway-Metadata: enabled`. Returned under both `gateway_metadata` and its former name `omnirelay_metadata`, with the same content. On a stream it rides the first chunk.","properties":{"request_id":{"type":"string","description":"The request ID, as in `X-Request-ID`.","uniqueKey":"omnirelay_metadata.request_id","typeLabel":"string"},"requested":{"type":"string","description":"The model ID you sent.","uniqueKey":"omnirelay_metadata.requested","typeLabel":"string"},"model":{"type":"string","description":"The model that served the call.","uniqueKey":"omnirelay_metadata.model","typeLabel":"string"},"provider":{"type":"string","description":"The provider of that model.","uniqueKey":"omnirelay_metadata.provider","typeLabel":"string"},"mode":{"type":"string","enum":["live"],"description":"live: a real provider was called.","uniqueKey":"omnirelay_metadata.mode","typeLabel":"enum\u003cstring>"},"strategy":{"type":"string","enum":["direct"],"description":"How the model was resolved. Every model has one channel today, so this is always `direct`.","uniqueKey":"omnirelay_metadata.strategy","typeLabel":"enum\u003cstring>"},"attempt":{"type":"integer","description":"1-based position of the attempt that served. Always 1 until fallback exists.","uniqueKey":"omnirelay_metadata.attempt","typeLabel":"integer"},"attempts":{"type":"array","description":"Every attempt made, in order.","items":{"type":"object","properties":{"provider":{"type":"string","uniqueKey":"omnirelay_metadata.attempts.items.[INDEX].provider","typeLabel":"string"},"model":{"type":"string","uniqueKey":"omnirelay_metadata.attempts.items.[INDEX].model","typeLabel":"string"},"mode":{"type":"string","uniqueKey":"omnirelay_metadata.attempts.items.[INDEX].mode","typeLabel":"string"}},"uniqueKey":"omnirelay_metadata.attempts.items.[INDEX]","typeLabel":"object"},"uniqueKey":"omnirelay_metadata.attempts","typeLabel":"object[]"},"tags":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"omnirelay_metadata.tags.additionalProperties","typeLabel":"string"},"description":"The tags recorded for this call, or `{}`.","uniqueKey":"omnirelay_metadata.tags","typeLabel":"object"},"deprecated_header":{"type":"string","description":"Present when the request sent an old-style header (`X-OmniRelay-Tags` or `X-OmniRelay-Metadata`) together with its new name carrying a different value: names the old header that was ignored.","uniqueKey":"omnirelay_metadata.deprecated_header","typeLabel":"string"}},"uniqueKey":"omnirelay_metadata","typeLabel":"object"},"gateway_metadata":{"type":"object","description":"Present only when the request sent `X-Gateway-Metadata: enabled`. Returned under both `gateway_metadata` and its former name `omnirelay_metadata`, with the same content. On a stream it rides the first chunk.","properties":{"request_id":{"type":"string","description":"The request ID, as in `X-Request-ID`.","uniqueKey":"gateway_metadata.request_id","typeLabel":"string"},"requested":{"type":"string","description":"The model ID you sent.","uniqueKey":"gateway_metadata.requested","typeLabel":"string"},"model":{"type":"string","description":"The model that served the call.","uniqueKey":"gateway_metadata.model","typeLabel":"string"},"provider":{"type":"string","description":"The provider of that model.","uniqueKey":"gateway_metadata.provider","typeLabel":"string"},"mode":{"type":"string","enum":["live"],"description":"live: a real provider was called.","uniqueKey":"gateway_metadata.mode","typeLabel":"enum\u003cstring>"},"strategy":{"type":"string","enum":["direct"],"description":"How the model was resolved. Every model has one channel today, so this is always `direct`.","uniqueKey":"gateway_metadata.strategy","typeLabel":"enum\u003cstring>"},"attempt":{"type":"integer","description":"1-based position of the attempt that served. Always 1 until fallback exists.","uniqueKey":"gateway_metadata.attempt","typeLabel":"integer"},"attempts":{"type":"array","description":"Every attempt made, in order.","items":{"type":"object","properties":{"provider":{"type":"string","uniqueKey":"gateway_metadata.attempts.items.[INDEX].provider","typeLabel":"string"},"model":{"type":"string","uniqueKey":"gateway_metadata.attempts.items.[INDEX].model","typeLabel":"string"},"mode":{"type":"string","uniqueKey":"gateway_metadata.attempts.items.[INDEX].mode","typeLabel":"string"}},"uniqueKey":"gateway_metadata.attempts.items.[INDEX]","typeLabel":"object"},"uniqueKey":"gateway_metadata.attempts","typeLabel":"object[]"},"tags":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"gateway_metadata.tags.additionalProperties","typeLabel":"string"},"description":"The tags recorded for this call, or `{}`.","uniqueKey":"gateway_metadata.tags","typeLabel":"object"},"deprecated_header":{"type":"string","description":"Present when the request sent an old-style header (`X-OmniRelay-Tags` or `X-OmniRelay-Metadata`) together with its new name carrying a different value: names the old header that was ignored.","uniqueKey":"gateway_metadata.deprecated_header","typeLabel":"string"}},"uniqueKey":"gateway_metadata","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"live":{"title":"live","value":{"id":"chatcmpl-example","object":"chat.completion","created":1790985600,"model":"gpt-6-luna","choices":[{"index":0,"message":{"role":"assistant","content":"Hello."},"finish_reason":"stop"}],"usage":{"prompt_tokens":10,"completion_tokens":5,"total_tokens":15},"cost_microusd":30}}},"exampleType":"examples"},"text/event-stream":{"schema":{"type":"string","uniqueKey":"","typeLabel":"string"},"example":"data: {\"id\":\"chatcmpl-fixture\",\"object\":\"chat.completion.chunk\",\"model\":\"gpt-6-luna\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"Hello\"},\"finish_reason\":\"stop\"}]}\n\ndata: [DONE]\n\n","examples":{"Example":{"title":"Example","value":"data: {\"id\":\"chatcmpl-fixture\",\"object\":\"chat.completion.chunk\",\"model\":\"gpt-6-luna\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"Hello\"},\"finish_reason\":\"stop\"}]}\n\ndata: [DONE]\n\n"}},"exampleType":"examples"}},"exampleType":"examples"},"fa2bff99-7dfb-4446-b9cf-ead4bd8ce540":{"description":"Invalid JSON, tags or parameters; unsupported model capabilities; or context_length_exceeded. Rejected before dispatch.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","type"],"properties":{"code":{"type":"string","example":"model_unavailable","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The model does not exist or is disabled.","description":"Short English description for logs and SDK exceptions. Its wording can change; branch on code.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","example":"not_found_error","description":"Error family by HTTP status: invalid_request_error, authentication_error, insufficient_quota, permission_error, not_found_error, conflict_error, rate_limit_error, service_unavailable or api_error.","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"param":{"type":"string","maxLength":200,"description":"Rejected request field path when identifiable; never a parameter value. Responses uses native field names.","uniqueKey":"error.param","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"request_id":{"type":"string","description":"Present on chat completion, Responses and embeddings errors.","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"unsupported_parameter"},"request_id":"2f6c1d0e9a"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"unsupported_parameter"},"request_id":"2f6c1d0e9a"}}},"exampleType":"examples"}},"exampleType":"examples"},"286a3e3d-c7fa-4604-aca7-139217fe97f8":{"description":"`unauthorized`: the API key is missing, revoked, or invalid.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","type"],"properties":{"code":{"type":"string","example":"model_unavailable","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The model does not exist or is disabled.","description":"Short English description for logs and SDK exceptions. Its wording can change; branch on code.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","example":"not_found_error","description":"Error family by HTTP status: invalid_request_error, authentication_error, insufficient_quota, permission_error, not_found_error, conflict_error, rate_limit_error, service_unavailable or api_error.","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"param":{"type":"string","maxLength":200,"description":"Rejected request field path when identifiable; never a parameter value. Responses uses native field names.","uniqueKey":"error.param","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"request_id":{"type":"string","description":"Present on chat completion, Responses and embeddings errors.","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"unauthorized"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"unauthorized"}}}},"exampleType":"examples"}},"exampleType":"examples"},"ada03869-1a6a-4665-b529-db052f312fec":{"description":"inference_budget_or_access_denied: wallet, key or platform budget cannot cover the reservation; member_budget_exceeded: member cap exceeded. Rejected before dispatch.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","type"],"properties":{"code":{"type":"string","example":"model_unavailable","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The model does not exist or is disabled.","description":"Short English description for logs and SDK exceptions. Its wording can change; branch on code.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","example":"not_found_error","description":"Error family by HTTP status: invalid_request_error, authentication_error, insufficient_quota, permission_error, not_found_error, conflict_error, rate_limit_error, service_unavailable or api_error.","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"param":{"type":"string","maxLength":200,"description":"Rejected request field path when identifiable; never a parameter value. Responses uses native field names.","uniqueKey":"error.param","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"request_id":{"type":"string","description":"Present on chat completion, Responses and embeddings errors.","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"insufficient_balance"},"request_id":"2f6c1d0e9a"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"insufficient_balance"},"request_id":"2f6c1d0e9a"}}},"exampleType":"examples"}},"exampleType":"examples"},"e55573a0-d711-4c95-bfd8-dc539be134e5":{"description":"`model_not_allowed`: the API key is limited to other models. Nothing is charged.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","type"],"properties":{"code":{"type":"string","example":"model_unavailable","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The model does not exist or is disabled.","description":"Short English description for logs and SDK exceptions. Its wording can change; branch on code.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","example":"not_found_error","description":"Error family by HTTP status: invalid_request_error, authentication_error, insufficient_quota, permission_error, not_found_error, conflict_error, rate_limit_error, service_unavailable or api_error.","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"param":{"type":"string","maxLength":200,"description":"Rejected request field path when identifiable; never a parameter value. Responses uses native field names.","uniqueKey":"error.param","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"request_id":{"type":"string","description":"Present on chat completion, Responses and embeddings errors.","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"model_not_allowed"},"request_id":"2f6c1d0e9a"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"model_not_allowed"},"request_id":"2f6c1d0e9a"}}},"exampleType":"examples"}},"exampleType":"examples"},"ea0e0493-8751-4500-a515-416cf7dc0d35":{"description":"`model_unavailable`: the model does not exist or is disabled in this workspace.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","type"],"properties":{"code":{"type":"string","example":"model_unavailable","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The model does not exist or is disabled.","description":"Short English description for logs and SDK exceptions. Its wording can change; branch on code.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","example":"not_found_error","description":"Error family by HTTP status: invalid_request_error, authentication_error, insufficient_quota, permission_error, not_found_error, conflict_error, rate_limit_error, service_unavailable or api_error.","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"param":{"type":"string","maxLength":200,"description":"Rejected request field path when identifiable; never a parameter value. Responses uses native field names.","uniqueKey":"error.param","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"request_id":{"type":"string","description":"Present on chat completion, Responses and embeddings errors.","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"model_unavailable"},"request_id":"2f6c1d0e9a"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"model_unavailable"},"request_id":"2f6c1d0e9a"}}},"exampleType":"examples"}},"exampleType":"examples"},"9f0e3d66-41d7-4f87-a750-6a96bd8d82f8":{"description":"payload_too_large: the request body exceeds 4 MiB (4194304 bytes of UTF-8).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","type"],"properties":{"code":{"type":"string","example":"model_unavailable","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The model does not exist or is disabled.","description":"Short English description for logs and SDK exceptions. Its wording can change; branch on code.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","example":"not_found_error","description":"Error family by HTTP status: invalid_request_error, authentication_error, insufficient_quota, permission_error, not_found_error, conflict_error, rate_limit_error, service_unavailable or api_error.","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"param":{"type":"string","maxLength":200,"description":"Rejected request field path when identifiable; never a parameter value. Responses uses native field names.","uniqueKey":"error.param","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"request_id":{"type":"string","description":"Present on chat completion, Responses and embeddings errors.","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"payload_too_large"},"request_id":"2f6c1d0e9a"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"payload_too_large"},"request_id":"2f6c1d0e9a"}}},"exampleType":"examples"}},"exampleType":"examples"},"04a2d5ff-cc8c-4b81-a390-261b5c89bd17":{"description":"rate_limited: the effective account request limit was exceeded.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","type"],"properties":{"code":{"type":"string","example":"model_unavailable","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The model does not exist or is disabled.","description":"Short English description for logs and SDK exceptions. Its wording can change; branch on code.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","example":"not_found_error","description":"Error family by HTTP status: invalid_request_error, authentication_error, insufficient_quota, permission_error, not_found_error, conflict_error, rate_limit_error, service_unavailable or api_error.","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"param":{"type":"string","maxLength":200,"description":"Rejected request field path when identifiable; never a parameter value. Responses uses native field names.","uniqueKey":"error.param","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"request_id":{"type":"string","description":"Present on chat completion, Responses and embeddings errors.","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"rate_limited"},"request_id":"2f6c1d0e9a"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"rate_limited"},"request_id":"2f6c1d0e9a"}}},"exampleType":"examples"}},"exampleType":"examples"},"b4a6102d-b7ea-4f7b-a67b-9b5fbcc91ef3":{"description":"Model provider rejection, transport failure, invalid response or missing/invalid usage. A dispatched call may retain a hold pending reconciliation; this status does not prove the provider did not bill.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","type"],"properties":{"code":{"type":"string","example":"model_unavailable","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The model does not exist or is disabled.","description":"Short English description for logs and SDK exceptions. Its wording can change; branch on code.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","example":"not_found_error","description":"Error family by HTTP status: invalid_request_error, authentication_error, insufficient_quota, permission_error, not_found_error, conflict_error, rate_limit_error, service_unavailable or api_error.","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"param":{"type":"string","maxLength":200,"description":"Rejected request field path when identifiable; never a parameter value. Responses uses native field names.","uniqueKey":"error.param","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"request_id":{"type":"string","description":"Present on chat completion, Responses and embeddings errors.","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"model_unavailable","message":"The model does not exist or is disabled.","type":"not_found_error","param":"\u003cstring>"},"request_id":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"4ec9b6fd-689a-438c-abb5-8e6f198e182a":{"description":"channel_unavailable, live_provider_not_configured, live_provider_unavailable, runtime_maintenance, or storage_unavailable. Credential and maintenance checks reject before dispatch. An ambiguous dispatched request remains pending; do not automatically retry a paid call.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","type"],"properties":{"code":{"type":"string","example":"model_unavailable","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"The model does not exist or is disabled.","description":"Short English description for logs and SDK exceptions. Its wording can change; branch on code.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","example":"not_found_error","description":"Error family by HTTP status: invalid_request_error, authentication_error, insufficient_quota, permission_error, not_found_error, conflict_error, rate_limit_error, service_unavailable or api_error.","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"param":{"type":"string","maxLength":200,"description":"Rejected request field path when identifiable; never a parameter value. Responses uses native field names.","uniqueKey":"error.param","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"request_id":{"type":"string","description":"Present on chat completion, Responses and embeddings errors.","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"live_provider_not_configured"},"request_id":"2f6c1d0e9a"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"live_provider_not_configured"},"request_id":"2f6c1d0e9a"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"0cfd7c8d-004d-4e0d-96de-988610dc14a3":{"bearerAuth":{"type":"http","scheme":"bearer","description":"An API key created in the OmniRelay console. The owner can view it again in the console after confirming their identity.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"8343319b-fc64-466b-b314-1aa49367d633":{"url":"https://api.omnirelay.ai"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"An API key created in the OmniRelay console. The owner can view it again in the console after confirming their identity.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An API key created in the OmniRelay console. The owner can view it again in the console after confirming their identity.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"mirvos","siteName":"OmniRelay Documentation","title":"Create chat completion - OmniRelay Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/chat/create-chat-completion","matchLevel":0},"cn":{"href":"/cn/api-reference/chat/create-chat-completion","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-11-02T19:46:13.674Z","originalFileLocation":"api-reference/chat/create-chat-completion.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=\"Calls an enabled model with its protocol-specific reviewed capabilities. Query GET /v1/models for tools, JSON formats, sampling, reasoning and combination restrictions. Capability review covers every callable route. New combinations are documentation-based, pending individual live validation. Reserves and settles validated usage; disable automatic SDK retries. Responses is stateless/store:false; hosted tools and stored IDs are unsupported. All callable routes use parameter passthrough (parameter_policy upstream-first). Capability lists are guidance, not local rejection lists; ordinary schemas and extension fields are forwarded. Native responses/reasoning output is retained. Model provider 400/422 rejections release holds; provider failures, timeouts and interrupted streams need reconciliation.\">\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=\"Create chat completion - OmniRelay Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Calls an enabled model with its protocol-specific reviewed capabilities. Query GET /v1/models for tools, JSON formats, sampling, reasoning and combination restrictions. Capability review covers every callable route. New combinations are documentation-based, pending individual live validation. Reserves and settles validated usage; disable automatic SDK retries. Responses is stateless/store:false; hosted tools and stored IDs are unsupported. All callable routes use parameter passthrough (parameter_policy upstream-first). Capability lists are guidance, not local rejection lists; ordinary schemas and extension fields are forwarded. Native responses/reasoning output is retained. Model provider 400/422 rejections release holds; provider failures, timeouts and interrupted streams need reconciliation.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OmniRelay Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://omnirelay.ai/docs/api-reference/chat/create-chat-completion\">\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=Chat\u0026amp;title=Create+chat+completion\u0026amp;description=Calls+an+enabled+model+with+its+protocol-specific+reviewed+capabilities.+Query+GET+%2Fv1%2Fmodels+for+tools%2C+JSON+formats%2C+sampling%2C+reasoning+and+combination+restr\u0026amp;theme=43c50d0778dfe81e3173fcea\u0026amp;signature=ecc2e9c7afaaaddda081bb20e550bfd048233f3d767f6139415adbaa2c6d2b33\">\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=\"Create chat completion - OmniRelay Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Calls an enabled model with its protocol-specific reviewed capabilities. Query GET /v1/models for tools, JSON formats, sampling, reasoning and combination restrictions. Capability review covers every callable route. New combinations are documentation-based, pending individual live validation. Reserves and settles validated usage; disable automatic SDK retries. Responses is stateless/store:false; hosted tools and stored IDs are unsupported. All callable routes use parameter passthrough (parameter_policy upstream-first). Capability lists are guidance, not local rejection lists; ordinary schemas and extension fields are forwarded. Native responses/reasoning output is retained. Model provider 400/422 rejections release holds; provider failures, timeouts and interrupted streams need reconciliation.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mirvos.mintlify.site/docs/_mintlify/api/og/v2?division=Chat\u0026amp;title=Create+chat+completion\u0026amp;description=Calls+an+enabled+model+with+its+protocol-specific+reviewed+capabilities.+Query+GET+%2Fv1%2Fmodels+for+tools%2C+JSON+formats%2C+sampling%2C+reasoning+and+combination+restr\u0026amp;theme=43c50d0778dfe81e3173fcea\u0026amp;signature=ecc2e9c7afaaaddda081bb20e550bfd048233f3d767f6139415adbaa2c6d2b33\">\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/api-reference/chat/create-chat-completion\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/chat/create-chat-completion.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://omnirelay.ai/docs/api-reference/chat/create-chat-completion\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://omnirelay.ai/docs/cn/api-reference/chat/create-chat-completion\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://omnirelay.ai/docs/api-reference/chat/create-chat-completion\">\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/api-reference/chat/create-chat-completion#webpage\",\"url\":\"https://omnirelay.ai/docs/api-reference/chat/create-chat-completion\",\"name\":\"Create chat completion\",\"description\":\"Calls an enabled model with its protocol-specific reviewed capabilities. Query GET /v1/models for tools, JSON formats, sampling, reasoning and combination restrictions. Capability review covers every callable route. New combinations are documentation-based, pending individual live validation. Reserves and settles validated usage; disable automatic SDK retries. Responses is stateless/store:false; hosted tools and stored IDs are unsupported. All callable routes use parameter passthrough (parameter_policy upstream-first). Capability lists are guidance, not local rejection lists; ordinary schemas and extension fields are forwarded. Native responses/reasoning output is retained. Model provider 400/422 rejections release holds; provider failures, timeouts and interrupted streams need reconciliation.\",\"dateModified\":\"2026-11-02T19:46:13.674Z\",\"isPartOf\":{\"@id\":\"https://omnirelay.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://omnirelay.ai/docs/api-reference/chat/create-chat-completion#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://omnirelay.ai/docs/api-reference/chat/create-chat-completion#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"OmniRelay Documentation\",\"item\":\"https://omnirelay.ai/docs\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create chat completion\",\"item\":\"https://omnirelay.ai/docs/api-reference/chat/create-chat-completion\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://omnirelay.ai/docs/api-reference/chat/create-chat-completion#apireference\",\"headline\":\"Create chat completion\",\"name\":\"Create chat completion\",\"description\":\"Calls an enabled model with its protocol-specific reviewed capabilities. Query GET /v1/models for tools, JSON formats, sampling, reasoning and combination restrictions. Capability review covers every callable route. New combinations are documentation-based, pending individual live validation. Reserves and settles validated usage; disable automatic SDK retries. Responses is stateless/store:false; hosted tools and stored IDs are unsupported. All callable routes use parameter passthrough (parameter_policy upstream-first). Capability lists are guidance, not local rejection lists; ordinary schemas and extension fields are forwarded. Native responses/reasoning output is retained. Model provider 400/422 rejections release holds; provider failures, timeouts and interrupted streams need reconciliation.\",\"url\":\"https://omnirelay.ai/docs/api-reference/chat/create-chat-completion\",\"mainEntityOfPage\":{\"@id\":\"https://omnirelay.ai/docs/api-reference/chat/create-chat-completion#webpage\"},\"dateModified\":\"2026-11-02T19:46:13.674Z\",\"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/api-reference/chat/create-chat-completion.md","siteName":"OmniRelay Documentation","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"V1 Documentation","pages":[{"title":"V1 Documentation","href":""}]},{"tab":"V1 API Reference","groups":[{"group":"Service","pages":[{"title":"Health check","deprecated":null,"version":null,"openapi":"/openapi.json get /health","href":"/api-reference/service/health-check"}]},{"group":"Models","pages":[{"title":"List models","description":"Returns callable real models filtered by workspace, key allowlist and available runtime/channels. Use your own response for IDs, capabilities, limits, reasoning efforts and prices. Catalog visibility does not grant access.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/models","href":"/api-reference/models/list-models"}]},{"group":"Chat","pages":[{"title":"Create chat completion","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/chat/completions","href":"/api-reference/chat/create-chat-completion"}]},{"group":"Management","pages":[{"title":"List API keys","description":"Returns only the owner's API keys, including revoked entries. No full credentials are returned.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/manage/keys","href":"/api-reference/management/list-api-keys"},{"title":"Create API key","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/manage/keys","href":"/api-reference/management/create-api-key"},{"title":"List key budgets","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/manage/keys/budgets","href":"/api-reference/management/list-key-budgets"},{"title":"Revoke API key","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/manage/keys/{id}","href":"/api-reference/management/revoke-api-key"},{"title":"Update API key","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/manage/keys/{id}","href":"/api-reference/management/update-api-key"},{"title":"Rotate API key","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/manage/keys/{id}/rotate","href":"/api-reference/management/rotate-api-key"},{"title":"Update key budget","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/manage/keys/{id}/budget","href":"/api-reference/management/update-key-budget"},{"title":"Read usage summary","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/manage/usage","href":"/api-reference/management/read-usage-summary"},{"title":"List request records","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/manage/requests","href":"/api-reference/management/list-request-records"}]},{"group":"Responses","pages":[{"title":"Create responses","deprecated":null,"version":null,"sidebarTitle":"Create responses","openapi":"/openapi.json post /v1/responses","href":"/api-reference/responses/create-response"}]},{"group":"Embeddings","pages":[{"title":"Create embeddings","deprecated":null,"version":null,"sidebarTitle":"Create embeddings","openapi":"/openapi.json post /v1/embeddings","href":"/api-reference/embeddings/create-embeddings"}]},{"group":"Images","pages":[{"title":"Create images","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/images/generations","href":"/api-reference/images/create-images"},{"title":"Edit images","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/images/edits","href":"/api-reference/images/edit-images"}]},{"group":"Videos","pages":[{"title":"Create video task","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v3/contents/generations/tasks","href":"/api-reference/videos/create-video-task"},{"title":"Get video task","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v3/contents/generations/tasks/{id}","href":"/api-reference/videos/get-video-task"}]}]}]},{"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/api-reference/chat/create-chat-completion"}]},{"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":"Create chat completion - OmniRelay Documentation","buildId":"dpl_6PxPD4Fj1JDU9BJxEHvfdUmxKThw","deploymentId":"dpl_6PxPD4Fj1JDU9BJxEHvfdUmxKThw","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CASS2Vpq.js","utils-4k9fyWRu.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-UU-UueZb.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BgJ0LOYq.js","snippetPresets-CMgzlMR-.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BzEJegkK.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CZuQIZdk.js","shallow-Bw5arfMA.js","getApiPlaygroundDisplay-Ds834aVN.js","CodeSnippet-CKzmjw9L.js","CodeSnippets-BRpgomdp.js","Page-DvEUoD2H.js","getPastedJson-B0N-Tn76.js","icon-DASMs9nC.js","MethodPill-BA6DBLqx.js","DuplicateIcon-BMT5qfbJ.js","createIcon-CNfwVWPx.js","DynamicMarkdown-JYyBNlrJ.js","SectionHeading-BbZnmz8a.js","axios-vUo_bRtp.js","Markdown-LUU0YLpA.js","clsx-Di4ek5Ae.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-VEVWQCR4.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CPszyu99.js"]}