curl https://api.snapgen.org/v1/chat/completions \ -H "Authorization: Bearer sk-xxxx" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-6.1-sol", "messages": [ { "role": "system", "content": "You answer in one concise sentence." }, { "role": "user", "content": "What is an API gateway?" } ], "reasoning_effort": "medium", "max_completion_tokens": 2048 }'
{ "id": "chatcmpl_01HXYZ", "object": "chat.completion", "created": 1730000000, "model": "gpt-6.1-sol", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "An API gateway is a service that provides one interface for routing requests to one or more APIs." }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 25, "completion_tokens": 19, "total_tokens": 44 }}
Endpoint Reference
Chat Completions protocol
Common OpenAI-compatible chat request, response, and streaming rules.
POST
/
v1
/
chat
/
completions
curl https://api.snapgen.org/v1/chat/completions \ -H "Authorization: Bearer sk-xxxx" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-6.1-sol", "messages": [ { "role": "system", "content": "You answer in one concise sentence." }, { "role": "user", "content": "What is an API gateway?" } ], "reasoning_effort": "medium", "max_completion_tokens": 2048 }'
{ "id": "chatcmpl_01HXYZ", "object": "chat.completion", "created": 1730000000, "model": "gpt-6.1-sol", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "An API gateway is a service that provides one interface for routing requests to one or more APIs." }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 25, "completion_tokens": 19, "total_tokens": 44 }}
Create a model response from a list of chat messages. GPT-5.6, GPT-6, Grok, Gemini, and DeepSeek models accept this protocol; choose an exact model page under Text Series for pricing and the recommended model ID.
Controls sampling variation where the selected model supports it. Some GPT
reasoning models restrict sampling parameters; omit it unless you have verified
support for your model and reasoning setting.
Caps generated GPT-5.6 and GPT-6 tokens, including reasoning tokens. If you send
max_tokens instead, SnapGen forwards it as max_completion_tokens. When both
are present, max_completion_tokens wins.
Function tools use the Chat Completions format:
{ "type": "function", "function": { "name": "...", "parameters": {} } }.
Read choices[].message.tool_calls, execute the requested functions in your
application, then send their results as role: "tool" messages with the matching
tool_call_id. SnapGen does not execute your functions.
Each event begins with data:. Read events until the data: [DONE] marker.
To request token usage in the stream, include stream_options: { "include_usage": true }.
data: {"id":"chatcmpl_01HXYZ","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"role":"assistant","content":"Hello"},"finish_reason":null}]}data: {"id":"chatcmpl_01HXYZ","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":" from SnapGen"},"finish_reason":null}]}data: [DONE]
Concatenate choices[0].delta.content values as they arrive. A delta can omit content, especially in the first or final event.
curl https://api.snapgen.org/v1/chat/completions \ -H "Authorization: Bearer sk-xxxx" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-6.1-sol", "messages": [ { "role": "system", "content": "You answer in one concise sentence." }, { "role": "user", "content": "What is an API gateway?" } ], "reasoning_effort": "medium", "max_completion_tokens": 2048 }'
{ "id": "chatcmpl_01HXYZ", "object": "chat.completion", "created": 1730000000, "model": "gpt-6.1-sol", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "An API gateway is a service that provides one interface for routing requests to one or more APIs." }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 25, "completion_tokens": 19, "total_tokens": 44 }}
For the input/output item format used by agent clients, see the
Responses protocol.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"SnapGen","description":"SnapGen API documentation for text, image, video, and audio models, integrations, guides, and troubleshooting.","colors":{"primary":"#4F46E5","light":"#7C6FF0","dark":"#4F46E5"},"logo":{"light":"https://mintcdn.com/snapgen/iwZkocuvFMLxT5db/logo/light.svg?fit=max\u0026auto=format\u0026n=iwZkocuvFMLxT5db\u0026q=85\u0026s=a7ac75b335d331361a43c6f6a734004b","dark":"https://mintcdn.com/snapgen/iwZkocuvFMLxT5db/logo/dark.svg?fit=max\u0026auto=format\u0026n=iwZkocuvFMLxT5db\u0026q=85\u0026s=7fd801cf5d0022b249726be6bd7f5b1a"},"favicon":"https://mintcdn.com/snapgen/F0U4_v0zMJF-C-AL/favicon-snapgen-mark.svg?fit=max\u0026auto=format\u0026n=F0U4_v0zMJF-C-AL\u0026q=85\u0026s=de7a0900448a50576ae9be06149e11f2","api":{"mdx":{"auth":{"method":"bearer"},"server":"https://api.snapgen.org"}},"navbar":{"links":[{"href":"https://snapgen.org/models","label":"Models"},{"href":"https://snapgen.org/dashboard","label":"Console"}],"primary":{"type":"button","label":"Get API Key","href":"https://snapgen.org/sign-up"}},"footer":{"socials":{"website":"https://snapgen.org","github":"https://github.com/snapgen-ai"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"snapgen","hasAudioNarration":false,"actualSubdomain":"snapgen","customDomains":["docs.snapgen.org"],"gitSource":{"type":"github","owner":"snapgen-ai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6acd9c9f160377be61b1585a","collectionId":"9556dd4a-17f1-4ad7-8d9d-ed8a684c3655","liveDeploymentHistoryId":"6acd9c9f160377be61b1585a","schemaVersion":"v3"},"entitlements":{},"buildId":"6acd9c9f160377be61b1585a","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"API Manual","count":136},{"language":"default","tag":"Audio Series","count":56},{"language":"default","tag":"Video Series","count":36},{"language":"default","tag":"Suno","count":33},{"language":"default","tag":"Text Series","count":18},{"language":"default","tag":"Endpoint Reference","count":16},{"language":"default","tag":"Edit","count":12},{"language":"default","tag":"Integrations","count":11},{"language":"default","tag":"Flow Music","count":9},{"language":"default","tag":"Seedance 2.0","count":9}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","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":"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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/chat-completions","slug":"/api-reference/chat-completions","pageMetadata":{"title":"Chat Completions protocol","description":"Common OpenAI-compatible chat request, response, and streaming rules.","api":"POST /v1/chat/completions","href":"/api-reference/chat-completions"},"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: \"Common OpenAI-compatible chat request, response, and streaming rules.\"\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`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading,ParamField,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Create a model response from a list of chat messages. GPT-5.6, GPT-6, Grok, Gemini, and DeepSeek models accept this protocol; choose an exact model page under `,_jsx(_components.strong,{children:`Text Series`}),` for pricing and the recommended model ID.`]}),`\n`,_jsx(ParamField,{body:`model`,type:`string`,required:true,id:`param-model`,children:_jsxs(_components.p,{children:[`A text model ID available to your API key. Use\n`,_jsx(_components.a,{href:`/api-reference/list-models`,children:_jsx(_components.code,{children:`GET /v1/models`})}),` to discover IDs, then open its\nindividual model page for current pricing.`]})}),`\n`,_jsx(ParamField,{body:`messages`,type:`array`,required:true,id:`param-messages`,children:_jsxs(_components.p,{children:[`Ordered chat messages. Each message includes a `,_jsx(_components.code,{children:`role`}),` and `,_jsx(_components.code,{children:`content`}),`.`]})}),`\n`,_jsx(ParamField,{body:`stream`,type:`boolean`,default:`false`,id:`param-stream`,children:_jsxs(_components.p,{children:[`Set to `,_jsx(_components.code,{children:`true`}),` to receive server-sent events.`]})}),`\n`,_jsx(ParamField,{body:`temperature`,type:`number`,id:`param-temperature`,children:_jsx(_components.p,{children:`Controls sampling variation where the selected model supports it. Some GPT\nreasoning models restrict sampling parameters; omit it unless you have verified\nsupport for your model and reasoning setting.`})}),`\n`,_jsx(ParamField,{body:`max_completion_tokens`,type:`integer`,id:`param-max-completion-tokens`,children:_jsxs(_components.p,{children:[`Caps generated GPT-5.6 and GPT-6 tokens, including reasoning tokens. If you send\n`,_jsx(_components.code,{children:`max_tokens`}),` instead, SnapGen forwards it as `,_jsx(_components.code,{children:`max_completion_tokens`}),`. When both\nare present, `,_jsx(_components.code,{children:`max_completion_tokens`}),` wins.`]})}),`\n`,_jsx(ParamField,{body:`max_tokens`,type:`integer`,id:`param-max-tokens`,children:_jsxs(_components.p,{children:[`Caps generated tokens for other model families. GPT-5.6 and GPT-6 accept it as\nan alias for `,_jsx(_components.code,{children:`max_completion_tokens`}),`.`]})}),`\n`,_jsx(ParamField,{body:`reasoning_effort`,type:`string`,id:`param-reasoning-effort`,children:_jsxs(_components.p,{children:[`Sets GPT reasoning effort, for example `,_jsx(_components.code,{children:`medium`}),`. Supported effort levels vary\nby model; check your selected model’s capabilities before changing it.`]})}),`\n`,_jsx(ParamField,{body:`tools`,type:`array`,id:`param-tools`,children:_jsxs(_components.p,{children:[`Function tools use the Chat Completions format:\n`,_jsx(_components.code,{children:`{ \"type\": \"function\", \"function\": { \"name\": \"...\", \"parameters\": {} } }`}),`.\nRead `,_jsx(_components.code,{children:`choices[].message.tool_calls`}),`, execute the requested functions in your\napplication, then send their results as `,_jsx(_components.code,{children:`role: \"tool\"`}),` messages with the matching\n`,_jsx(_components.code,{children:`tool_call_id`}),`. SnapGen does not execute your functions.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`stream-a-response`,children:`Stream a response`}),`\n`,_jsxs(_components.p,{children:[`Set `,_jsx(_components.code,{children:`stream`}),` to `,_jsx(_components.code,{children:`true`}),`. The response uses server-sent events (SSE).`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,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:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -N`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.snapgen.org/v1/chat/completions`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer sk-xxxx\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"model\": \"gpt-6.1-sol\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"messages\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {\"role\": \"user\", \"content\": \"Say hello in three words.\"}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"stream\": true`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Each event begins with `,_jsx(_components.code,{children:`data:`}),`. Read events until the `,_jsx(_components.code,{children:`data: [DONE]`}),` marker.\nTo request token usage in the stream, include `,_jsx(_components.code,{children:`stream_options: { \"include_usage\": true }`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`data: {\"id\":\"chatcmpl_01HXYZ\",\"object\":\"chat.completion.chunk\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":\"Hello\"},\"finish_reason\":null}]}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`data: {\"id\":\"chatcmpl_01HXYZ\",\"object\":\"chat.completion.chunk\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" from SnapGen\"},\"finish_reason\":null}]}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`data: [DONE]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Concatenate `,_jsx(_components.code,{children:`choices[0].delta.content`}),` values as they arrive. A delta can omit `,_jsx(_components.code,{children:`content`}),`, especially in the first or final event.`]})}),`\n`,`\n`,`\n`,_jsxs(_components.p,{children:[`For the input/output item format used by agent clients, see the\n`,_jsx(_components.a,{href:`/api-reference/responses`,children:`Responses protocol`}),`.`]})]})}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":"Chat Completions protocol","description":"Common OpenAI-compatible chat request, response, and streaming rules.","api":"POST /v1/chat/completions","href":"/api-reference/chat-completions"}}},"mdxSourceWithNoJs":{"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`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading,ParamField,RequestExample,ResponseExample,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!RequestExample)_missingMdxReference(`RequestExample`,true);if(!ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Create a model response from a list of chat messages. GPT-5.6, GPT-6, Grok, Gemini, and DeepSeek models accept this protocol; choose an exact model page under `,_jsx(_components.strong,{children:`Text Series`}),` for pricing and the recommended model ID.`]}),`\n`,_jsx(ParamField,{body:`model`,type:`string`,required:true,id:`param-model`,children:_jsxs(_components.p,{children:[`A text model ID available to your API key. Use\n`,_jsx(_components.a,{href:`/api-reference/list-models`,children:_jsx(_components.code,{children:`GET /v1/models`})}),` to discover IDs, then open its\nindividual model page for current pricing.`]})}),`\n`,_jsx(ParamField,{body:`messages`,type:`array`,required:true,id:`param-messages`,children:_jsxs(_components.p,{children:[`Ordered chat messages. Each message includes a `,_jsx(_components.code,{children:`role`}),` and `,_jsx(_components.code,{children:`content`}),`.`]})}),`\n`,_jsx(ParamField,{body:`stream`,type:`boolean`,default:`false`,id:`param-stream`,children:_jsxs(_components.p,{children:[`Set to `,_jsx(_components.code,{children:`true`}),` to receive server-sent events.`]})}),`\n`,_jsx(ParamField,{body:`temperature`,type:`number`,id:`param-temperature`,children:_jsx(_components.p,{children:`Controls sampling variation where the selected model supports it. Some GPT\nreasoning models restrict sampling parameters; omit it unless you have verified\nsupport for your model and reasoning setting.`})}),`\n`,_jsx(ParamField,{body:`max_completion_tokens`,type:`integer`,id:`param-max-completion-tokens`,children:_jsxs(_components.p,{children:[`Caps generated GPT-5.6 and GPT-6 tokens, including reasoning tokens. If you send\n`,_jsx(_components.code,{children:`max_tokens`}),` instead, SnapGen forwards it as `,_jsx(_components.code,{children:`max_completion_tokens`}),`. When both\nare present, `,_jsx(_components.code,{children:`max_completion_tokens`}),` wins.`]})}),`\n`,_jsx(ParamField,{body:`max_tokens`,type:`integer`,id:`param-max-tokens`,children:_jsxs(_components.p,{children:[`Caps generated tokens for other model families. GPT-5.6 and GPT-6 accept it as\nan alias for `,_jsx(_components.code,{children:`max_completion_tokens`}),`.`]})}),`\n`,_jsx(ParamField,{body:`reasoning_effort`,type:`string`,id:`param-reasoning-effort`,children:_jsxs(_components.p,{children:[`Sets GPT reasoning effort, for example `,_jsx(_components.code,{children:`medium`}),`. Supported effort levels vary\nby model; check your selected model’s capabilities before changing it.`]})}),`\n`,_jsx(ParamField,{body:`tools`,type:`array`,id:`param-tools`,children:_jsxs(_components.p,{children:[`Function tools use the Chat Completions format:\n`,_jsx(_components.code,{children:`{ \"type\": \"function\", \"function\": { \"name\": \"...\", \"parameters\": {} } }`}),`.\nRead `,_jsx(_components.code,{children:`choices[].message.tool_calls`}),`, execute the requested functions in your\napplication, then send their results as `,_jsx(_components.code,{children:`role: \"tool\"`}),` messages with the matching\n`,_jsx(_components.code,{children:`tool_call_id`}),`. SnapGen does not execute your functions.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`stream-a-response`,children:`Stream a response`}),`\n`,_jsxs(_components.p,{children:[`Set `,_jsx(_components.code,{children:`stream`}),` to `,_jsx(_components.code,{children:`true`}),`. The response uses server-sent events (SSE).`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,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:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -N`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.snapgen.org/v1/chat/completions`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer sk-xxxx\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"model\": \"gpt-6.1-sol\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"messages\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {\"role\": \"user\", \"content\": \"Say hello in three words.\"}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"stream\": true`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Each event begins with `,_jsx(_components.code,{children:`data:`}),`. Read events until the `,_jsx(_components.code,{children:`data: [DONE]`}),` marker.\nTo request token usage in the stream, include `,_jsx(_components.code,{children:`stream_options: { \"include_usage\": true }`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`data: {\"id\":\"chatcmpl_01HXYZ\",\"object\":\"chat.completion.chunk\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":\"Hello\"},\"finish_reason\":null}]}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`data: {\"id\":\"chatcmpl_01HXYZ\",\"object\":\"chat.completion.chunk\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" from SnapGen\"},\"finish_reason\":null}]}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`data: [DONE]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Concatenate `,_jsx(_components.code,{children:`choices[0].delta.content`}),` values as they arrive. A delta can omit `,_jsx(_components.code,{children:`content`}),`, especially in the first or final event.`]})}),`\n`,_jsx(RequestExample,{children:_jsx(CodeBlock,{filename:`Curl`,numberOfLines:`18`,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:`18`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.snapgen.org/v1/chat/completions`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer sk-xxxx\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"model\": \"gpt-6.1-sol\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"messages\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"role\": \"system\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"content\": \"You answer in one concise sentence.\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"role\": \"user\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"content\": \"What is an API gateway?\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"reasoning_effort\": \"medium\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"max_completion_tokens\": 2048`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})})}),`\n`,_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`Response`,numberOfLines:`21`,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:`21`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"chatcmpl_01HXYZ\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"object\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"chat.completion\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"created\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1730000000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"model\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"gpt-6.1-sol\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"choices\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"index\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"role\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"assistant\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"content\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"An API gateway is a service that provides one interface for routing requests to one or more APIs.\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"finish_reason\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"stop\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"usage\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"prompt_tokens\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`25`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"completion_tokens\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`19`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"total_tokens\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`44`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsxs(_components.p,{children:[`For the input/output item format used by agent clients, see the\n`,_jsx(_components.a,{href:`/api-reference/responses`,children:`Responses protocol`}),`.`]})]})}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":"Chat Completions protocol","description":"Common OpenAI-compatible chat request, response, and streaming rules.","api":"POST /v1/chat/completions","href":"/api-reference/chat-completions"}}}},"mdxExtracts":{"tableOfContents":[{"title":"Stream a response","slug":"stream-a-response","depth":2,"children":[]}],"codeExamples":{"request":{"type":"RequestExample","children":[{"filename":"Curl","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"shellscript\">\u003ccode language=\"shellscript\" numberOfLines=\"18\">\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">curl\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> https://api.snapgen.org/v1/chat/completions\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Authorization: Bearer sk-xxxx\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Content-Type: application/json\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -d\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> '{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"model\": \"gpt-6.1-sol\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"messages\": [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"role\": \"system\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"content\": \"You answer in one concise sentence.\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"role\": \"user\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"content\": \"What is an API gateway?\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> ],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"reasoning_effort\": \"medium\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"max_completion_tokens\": 2048\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> }'\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]},"response":{"type":"ResponseExample","children":[{"filename":"Response","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"21\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"chatcmpl_01HXYZ\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"object\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"chat.completion\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"created\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">1730000000\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"model\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"gpt-6.1-sol\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"choices\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"index\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">0\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"message\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"role\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"assistant\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"content\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"An API gateway is a service that provides one interface for routing requests to one or more APIs.\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"finish_reason\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"stop\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> ],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"usage\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"prompt_tokens\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">25\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"completion_tokens\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">19\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"total_tokens\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">44\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}},"endpoint":{"title":"Chat Completions protocol","path":"/v1/chat/completions","servers":[{"url":"https://api.snapgen.org"}],"method":"post","request":{"security":[{"title":"Bearer Auth","parameters":{"header":{"Authorization":{"type":"http","scheme":"bearer","description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token."}},"query":{},"cookie":{}}}],"parameters":{"query":{},"header":{},"cookie":{},"path":{}},"body":{"application/json":{"schemaArray":[{"type":"object","properties":{"model":[{"type":"string","description":"A text model ID available to your API key. Use `GET /v1/models` to discover IDs, then open its individual model page for current pricing.","required":true}],"messages":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"Ordered chat messages. Each message includes a `role` and `content` .","required":true}],"stream":[{"type":"boolean","description":"Set to `true` to receive server-sent events."}],"temperature":[{"type":"number","description":"Controls sampling variation where the selected model supports it. Some GPT reasoning models restrict sampling parameters; omit it unless you have verified support for your model and reasoning setting."}],"max_completion_tokens":[{"type":"integer","description":"Caps generated GPT-5.6 and GPT-6 tokens, including reasoning tokens. If you send `max_tokens` instead, SnapGen forwards it as `max_completion_tokens` . When both are present, `max_completion_tokens` wins."}],"max_tokens":[{"type":"integer","description":"Caps generated tokens for other model families. GPT-5.6 and GPT-6 accept it as an alias for `max_completion_tokens` ."}],"reasoning_effort":[{"type":"string","description":"Sets GPT reasoning effort, for example `medium` . Supported effort levels vary by model; check your selected model’s capabilities before changing it."}],"tools":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"Function tools use the Chat Completions format: `{ \"type\": \"function\", \"function\": { \"name\": \"...\", \"parameters\": {} } }` . Read `choices[].message.tool_calls` , execute the requested functions in your application, then send their results as `role: \"tool\"` messages with the matching `tool_call_id` . SnapGen does not execute your functions."}]}}],"examples":{"example":{"value":{"model":"\u003cstring>","messages":[{}],"stream":true,"temperature":123,"max_completion_tokens":123,"max_tokens":123,"reasoning_effort":"\u003cstring>","tools":[{}]}}}}}},"response":{},"deprecated":false}},"jsLinks":[],"subdomain":"snapgen","siteName":"SnapGen","title":"Chat Completions protocol - SnapGen","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-03T03:43:09.882Z","originalFileLocation":"api-reference/chat-completions.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Common OpenAI-compatible chat request, response, and streaming rules.\">\u003cmeta data-mint-head name=\"application-name\" content=\"SnapGen\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/snapgen/eOBDBRP-A7aqLDr3/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/snapgen/eOBDBRP-A7aqLDr3/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/snapgen/eOBDBRP-A7aqLDr3/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/snapgen/eOBDBRP-A7aqLDr3/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/snapgen/eOBDBRP-A7aqLDr3/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/snapgen/eOBDBRP-A7aqLDr3/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/snapgen/eOBDBRP-A7aqLDr3/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/snapgen/eOBDBRP-A7aqLDr3/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/snapgen/eOBDBRP-A7aqLDr3/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Chat Completions protocol - SnapGen\">\u003cmeta data-mint-head property=\"og:description\" content=\"Common OpenAI-compatible chat request, response, and streaming rules.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SnapGen\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.snapgen.org/api-reference/chat-completions\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://snapgen.mintlify.app/_mintlify/api/og/v2?division=Endpoint+Reference\u0026amp;title=Chat+Completions+protocol\u0026amp;description=Common+OpenAI-compatible+chat+request%2C+response%2C+and+streaming+rules.\u0026amp;theme=5da528b8fde4e28cf0c9e03e\u0026amp;signature=2fe1873075633d7ac00cb90132811ac9f51487f299d2954a2296be2537a768bd\">\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=\"Chat Completions protocol - SnapGen\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Common OpenAI-compatible chat request, response, and streaming rules.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://snapgen.mintlify.app/_mintlify/api/og/v2?division=Endpoint+Reference\u0026amp;title=Chat+Completions+protocol\u0026amp;description=Common+OpenAI-compatible+chat+request%2C+response%2C+and+streaming+rules.\u0026amp;theme=5da528b8fde4e28cf0c9e03e\u0026amp;signature=2fe1873075633d7ac00cb90132811ac9f51487f299d2954a2296be2537a768bd\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/snapgen/eOBDBRP-A7aqLDr3/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SnapGen\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4F46E5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.snapgen.org/api-reference/chat-completions\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/chat-completions.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.snapgen.org/#organization\",\"name\":\"SnapGen\",\"url\":\"https://docs.snapgen.org\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/snapgen/iwZkocuvFMLxT5db/logo/light.svg?fit=max\u0026auto=format\u0026n=iwZkocuvFMLxT5db\u0026q=85\u0026s=a7ac75b335d331361a43c6f6a734004b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.snapgen.org#website\",\"name\":\"SnapGen\",\"url\":\"https://docs.snapgen.org\",\"publisher\":{\"@id\":\"https://docs.snapgen.org/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.snapgen.org/api-reference/chat-completions#webpage\",\"url\":\"https://docs.snapgen.org/api-reference/chat-completions\",\"name\":\"Chat Completions protocol\",\"description\":\"Common OpenAI-compatible chat request, response, and streaming rules.\",\"dateModified\":\"2026-10-03T03:43:09.882Z\",\"isPartOf\":{\"@id\":\"https://docs.snapgen.org#website\"},\"breadcrumb\":{\"@id\":\"https://docs.snapgen.org/api-reference/chat-completions#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.snapgen.org/api-reference/chat-completions#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"SnapGen\",\"item\":\"https://docs.snapgen.org\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Chat Completions protocol\",\"item\":\"https://docs.snapgen.org/api-reference/chat-completions\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.snapgen.org/api-reference/chat-completions#apireference\",\"headline\":\"Chat Completions protocol\",\"name\":\"Chat Completions protocol\",\"description\":\"Common OpenAI-compatible chat request, response, and streaming rules.\",\"url\":\"https://docs.snapgen.org/api-reference/chat-completions\",\"mainEntityOfPage\":{\"@id\":\"https://docs.snapgen.org/api-reference/chat-completions#webpage\"},\"dateModified\":\"2026-10-03T03:43:09.882Z\",\"publisher\":{\"@id\":\"https://docs.snapgen.org/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.snapgen.org#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SnapGen\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"SnapGen","nav":{"global":null,"tabs":[{"tab":"API Manual","groups":[{"group":"Overview","icon":"book-open","pages":[{"title":"SnapGen API","sidebarTitle":"SnapGen API overview","href":""}]},{"group":"Text Series","icon":"font","pages":[{"group":"GPT-6","pages":[{"title":"GPT-6.1 Sol","api":"POST /v1/chat/completions","href":"/api-manual/text/gpt-6-1-sol"},{"title":"GPT-6 Astra","api":"POST /v1/chat/completions","href":"/api-manual/text/gpt-6-astra"},{"title":"GPT-6 Sol","api":"POST /v1/chat/completions","href":"/api-manual/text/gpt-6-sol"},{"title":"GPT-6 Luna","api":"POST /v1/chat/completions","href":"/api-manual/text/gpt-6-luna"}]},{"group":"GPT-5.6","pages":[{"title":"GPT-5.6 Sol","api":"POST /v1/chat/completions","href":"/api-manual/text/gpt-5-6-sol"},{"title":"GPT-5.6 Terra","api":"POST /v1/chat/completions","href":"/api-manual/text/gpt-5-6-terra"},{"title":"GPT-5.6 Luna","api":"POST /v1/chat/completions","href":"/api-manual/text/gpt-5-6-luna"},{"title":"GPT-5.6","api":"POST /v1/chat/completions","href":"/api-manual/text/gpt-5-6"}]},{"group":"Grok","pages":[{"title":"Grok 4.6","api":"POST /v1/chat/completions","href":"/api-manual/text/grok-4-6"},{"title":"Grok 4.5","api":"POST /v1/chat/completions","href":"/api-manual/text/grok-4-5"},{"title":"Grok 4.3","api":"POST /v1/chat/completions","href":"/api-manual/text/grok-4-3"}]},{"group":"Gemini","pages":[{"title":"Gemini 3.8 Flash","api":"POST /v1/chat/completions","href":"/api-manual/text/gemini-3-8-flash"},{"title":"Gemini 3.6 Flash","api":"POST /v1/chat/completions","href":"/api-manual/text/gemini-3-6-flash"},{"title":"Gemini 3.5 Flash","api":"POST /v1/chat/completions","href":"/api-manual/text/gemini-3-5-flash"},{"title":"Gemini 3.1 Pro Preview","api":"POST /v1/chat/completions","href":"/api-manual/text/gemini-3-1-pro-preview"}]},{"group":"DeepSeek","pages":[{"title":"DeepSeek V4 Pro","api":"POST /v1/chat/completions","href":"/api-manual/text/deepseek-v4-pro"},{"title":"DeepSeek V4 Flash","api":"POST /v1/chat/completions","href":"/api-manual/text/deepseek-v4-flash"},{"title":"DeepSeek Flash","api":"POST /v1/chat/completions","href":"/api-manual/text/deepseek-flash"}]}]},{"group":"Image Series","icon":"image","pages":[{"title":"Nano Banana 2.1","api":"POST /v1/images/generations","href":"/api-manual/image/nano-banana-2-1"},{"title":"GPT Image 2","api":"POST /v1/images/generations","href":"/api-manual/image/gpt-image-2"},{"title":"GPT Image 2.5 Ext","api":"POST /v1/images/generations","href":"/api-manual/image/gpt-image-2-5-ext"},{"title":"GPT Image 2.5 Ext Sunburst","api":"POST /v1/images/generations","href":"/api-manual/image/gpt-image-2-5-ext-sunburst"},{"title":"GPT Image 2 All","api":"POST /v1/images/generations","href":"/api-manual/image/gpt-image-2-all"},{"title":"Seedream 5.0 Pro","api":"POST /v1/images/generations","href":"/api-manual/image/seedream-5-0-pro"},{"title":"Nano Banana 2 Lite","api":"POST /v1/images/generations","href":"/api-manual/image/nano-banana-2-lite"}]},{"group":"Video Series","icon":"video","pages":[{"group":"Seedance 2.0","pages":[{"title":"Seedance 2.0 T2V","api":"POST /v1/videos","href":"/api-manual/video/seedance-2-0-t2v"},{"title":"Seedance 2.0 I2V","api":"POST /v1/videos","href":"/api-manual/video/seedance-2-0-i2v"},{"title":"Seedance 2.0 R2V","api":"POST /v1/videos","href":"/api-manual/video/seedance-2-0-r2v"},{"title":"Seedance 2.0 Fast T2V","api":"POST /v1/videos","href":"/api-manual/video/seedance-2-0-fast-t2v"},{"title":"Seedance 2.0 Fast I2V","api":"POST /v1/videos","href":"/api-manual/video/seedance-2-0-fast-i2v"},{"title":"Seedance 2.0 Fast R2V","api":"POST /v1/videos","href":"/api-manual/video/seedance-2-0-fast-r2v"},{"title":"Seedance 2.0 Mini T2V","api":"POST /v1/videos","href":"/api-manual/video/seedance-2-0-mini-t2v"},{"title":"Seedance 2.0 Mini I2V","api":"POST /v1/videos","href":"/api-manual/video/seedance-2-0-mini-i2v"},{"title":"Seedance 2.0 Mini R2V","api":"POST /v1/videos","href":"/api-manual/video/seedance-2-0-mini-r2v"}]},{"group":"Seedance 2.5","pages":[{"title":"Seedance 2.5 T2V","api":"POST /v1/videos","href":"/api-manual/video/seedance-2-5-t2v"},{"title":"Seedance 2.5 I2V","api":"POST /v1/videos","href":"/api-manual/video/seedance-2-5-i2v"},{"title":"Seedance 2.5 R2V","api":"POST /v1/videos","href":"/api-manual/video/seedance-2-5-r2v"},{"title":"Seedance 2.5 Extend","api":"POST /v1/videos","href":"/api-manual/video/seedance-2-5-extend"},{"title":"Seedance 2.5 480p","api":"POST /v1/videos","href":"/api-manual/video/seedance-2-5-480p"},{"title":"Seedance 2.5 720p","api":"POST /v1/videos","href":"/api-manual/video/seedance-2-5-720p"},{"title":"Seedance 2.5 480p V2V","api":"POST /v1/videos","href":"/api-manual/video/seedance-2-5-480p-v2v"},{"title":"Seedance 2.5 720p V2V","api":"POST /v1/videos","href":"/api-manual/video/seedance-2-5-720p-v2v"}]},{"group":"Gemini Omni Flash 1.1","pages":[{"title":"Gemini Omni Flash 1.1 T2V","api":"POST /v1/videos","href":"/api-manual/video/gemini-omni-flash-1-1-t2v"},{"title":"Gemini Omni Flash 1.1 I2V","api":"POST /v1/videos","href":"/api-manual/video/gemini-omni-flash-1-1-i2v"},{"title":"Gemini Omni Flash 1.1 R2V","api":"POST /v1/videos","href":"/api-manual/video/gemini-omni-flash-1-1-r2v"},{"title":"Gemini Omni Flash 1.1 Extend","api":"POST /v1/videos","href":"/api-manual/video/gemini-omni-flash-1-1-extend"}]},{"group":"Gemini Omni","pages":[{"title":"Gemini Omni T2V","api":"POST /v1/videos","href":"/api-manual/video/gemini-omni-t2v"},{"title":"Gemini Omni I2V","api":"POST /v1/videos","href":"/api-manual/video/gemini-omni-i2v"},{"title":"Gemini Omni R2V","api":"POST /v1/videos","href":"/api-manual/video/gemini-omni-r2v"},{"title":"Gemini Omni Extend","api":"POST /v1/videos","href":"/api-manual/video/gemini-omni-extend"}]},{"group":"Veo 3.1","pages":[{"title":"Veo 3.1 Lite","api":"POST /v1/videos","href":"/api-manual/video/veo3-1-lite"},{"title":"Veo 3.1 Lite 4K","api":"POST /v1/videos","href":"/api-manual/video/veo3-1-lite-4k"},{"title":"Veo 3.1 Fast","api":"POST /v1/videos","href":"/api-manual/video/veo3-1-fast"},{"title":"Veo 3.1 Fast 4K","api":"POST /v1/videos","href":"/api-manual/video/veo3-1-fast-4k"},{"title":"Veo 3.1 Fast Reference","api":"POST /v1/videos","href":"/api-manual/video/veo3-1-fast-ref"},{"title":"Veo 3.1 Quality","api":"POST /v1/videos","href":"/api-manual/video/veo3-1-quality"},{"title":"Veo 3.1 Quality 4K","api":"POST /v1/videos","href":"/api-manual/video/veo3-1-quality-4k"}]},{"group":"MiniMax H3","pages":[{"title":"MiniMax H3","api":"POST /v1/videos","href":"/api-manual/video/minimax-h3"},{"title":"MiniMax H3 2K","api":"POST /v1/videos","href":"/api-manual/video/minimax-h3-2k"}]},{"group":"Grok Imagine","pages":[{"title":"Grok Imagine 1.5 Fast","api":"POST /v1/videos","href":"/api-manual/video/grok-imagine-1-5-fast"}]},{"group":"HappyHorse","pages":[{"title":"HappyHorse 1.1","api":"POST /v1/videos","href":"/api-manual/video/happyhorse-1-1"}]}]},{"group":"Audio Series","icon":"waveform-lines","pages":[{"group":"ElevenLabs Speech","pages":[{"title":"Eleven v4","api":"POST /v1/audio/speech","href":"/api-manual/audio/eleven-v4"},{"title":"Eleven v3","api":"POST /v1/audio/speech","href":"/api-manual/audio/eleven-v3"},{"title":"Eleven Multilingual v2","api":"POST /v1/audio/speech","href":"/api-manual/audio/eleven-multilingual-v2"},{"title":"Eleven Flash v2.5","api":"POST /v1/audio/speech","href":"/api-manual/audio/eleven-flash-v2-5"},{"title":"Eleven v4 Dialogue","api":"POST /v1/audio/dialogue","href":"/api-manual/audio/eleven-v4-dialogue"},{"title":"Eleven v3 Dialogue","api":"POST /v1/audio/dialogue","href":"/api-manual/audio/eleven-v3-dialogue"}]},{"group":"ElevenLabs Speech to Text","pages":[{"title":"Scribe v2","api":"POST /v1/audio/transcriptions","href":"/api-manual/audio/scribe-v2"},{"title":"Eleven Forced Alignment","api":"POST /v1/audio/alignment","href":"/api-manual/audio/eleven-forced-alignment"}]},{"group":"ElevenLabs Music \u0026 Sound","pages":[{"title":"Eleven Music v2.5","api":"POST /v1/audio/music","href":"/api-manual/audio/eleven-music-v2-5"},{"title":"Eleven Sound Effects v2","api":"POST /v1/audio/sound-effects","href":"/api-manual/audio/eleven-sound-effects-v2"}]},{"group":"ElevenLabs Voice \u0026 Dubbing","pages":[{"title":"Eleven Multilingual STS v2","api":"POST /v1/audio/voice-changer","href":"/api-manual/audio/eleven-multilingual-sts-v2"},{"title":"Eleven English STS v2","api":"POST /v1/audio/voice-changer","href":"/api-manual/audio/eleven-english-sts-v2"},{"title":"Eleven Voice Isolator","api":"POST /v1/audio/isolation","href":"/api-manual/audio/eleven-voice-isolator"},{"title":"Eleven Dubbing v1","api":"POST /v1/audio/dubbing","href":"/api-manual/audio/eleven-dubbing-v1"}]},{"group":"Suno","pages":[{"group":"Create","pages":[{"title":"Suno Music","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-music"},{"title":"Suno Lyrics","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-lyrics"},{"title":"Suno Inspo","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-inspo"},{"title":"Suno Sounds","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-sounds"},{"title":"Suno Style Boost","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-style-boost"}]},{"group":"Upload","pages":[{"title":"Suno Upload","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-upload"},{"title":"Suno Upload Cover","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-upload-cover"},{"title":"Suno Upload Extend","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-upload-extend"},{"title":"Suno Custom Model","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-custom-model"}]},{"group":"Edit","pages":[{"title":"Suno Extend","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-extend"},{"title":"Suno Cover","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-cover"},{"title":"Suno Remaster","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-remaster"},{"title":"Suno Replace Section","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-replace-section"},{"title":"Suno Remove Section","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-remove-section"},{"title":"Suno Crop","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-crop"},{"title":"Suno Fade In","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-fade-in"},{"title":"Suno Fade Out","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-fade-out"},{"title":"Suno Speed","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-speed"},{"title":"Suno Concat","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-concat"},{"title":"Suno Mashup","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-mashup"},{"title":"Suno Sample","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-sample"}]},{"group":"Vocals \u0026 stems","pages":[{"title":"Suno Stems","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-stems"},{"title":"Suno All Stems","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-stems-all"},{"title":"Suno Add Vocals","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-add-vocals"},{"title":"Suno Add Instrumental","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-add-instrumental"},{"title":"Suno Add Stem","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-add-stem"},{"title":"Suno Voice","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-voice"},{"title":"Suno Persona","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-persona"}]},{"group":"Analysis \u0026 export","pages":[{"title":"Suno MIDI","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-midi"},{"title":"Suno Timed Lyrics","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-timed-lyrics"},{"title":"Suno BPM","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-bpm"},{"title":"Suno MP4","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-mp4"},{"title":"Suno Download","api":"POST /v1/music/generations","href":"/api-manual/audio/suno-download"}]}]},{"group":"Flow Music","pages":[{"title":"Flow Music","api":"POST /v1/music/generations","href":"/api-manual/audio/flow-music"},{"title":"Flow Music Lyrics","api":"POST /v1/music/generations","href":"/api-manual/audio/flow-music-lyrics"},{"title":"Flow Music Extend","api":"POST /v1/music/generations","href":"/api-manual/audio/flow-music-extend"},{"title":"Flow Music Replace","api":"POST /v1/music/generations","href":"/api-manual/audio/flow-music-replace"},{"title":"Flow Music Cover","api":"POST /v1/music/generations","href":"/api-manual/audio/flow-music-cover"},{"title":"Flow Music Stems","api":"POST /v1/music/generations","href":"/api-manual/audio/flow-music-stems"},{"title":"Flow Music Upload","api":"POST /v1/music/generations","href":"/api-manual/audio/flow-music-upload"},{"title":"Flow Music Download","api":"POST /v1/music/generations","href":"/api-manual/audio/flow-music-download"},{"title":"Flow Music Video","description":"Render a Flow Music clip into an MP4 video. $0.03 per request.","api":"POST /v1/music/generations","href":"/api-manual/audio/flow-music-video"}]}]},{"group":"Endpoint Reference","icon":"brackets-curly","pages":[{"title":"Chat Completions protocol","api":"POST /v1/chat/completions","href":"/api-reference/chat-completions"},{"title":"Responses protocol","description":"Use GPT text models with OpenAI-compatible input, output items, streaming, and function tools.","api":"POST /v1/responses","href":"/api-reference/responses"},{"title":"Image API protocol","api":"POST /v1/images/generations","href":"/api-reference/images"},{"title":"Source media tools","api":"POST /v1/media/tools","href":"/api-reference/media-tools"},{"title":"Video API workflow","api":"POST /v1/videos","href":"/api-reference/video-generation"},{"title":"Text to speech","api":"POST /v1/audio/speech","href":"/api-reference/audio-speech"},{"title":"Text to dialogue","api":"POST /v1/audio/dialogue","href":"/api-reference/audio-dialogue"},{"title":"Speech to text","api":"POST /v1/audio/transcriptions","href":"/api-reference/audio-transcriptions"},{"title":"Forced alignment","api":"POST /v1/audio/alignment","href":"/api-reference/audio-alignment"},{"title":"Music composition","api":"POST /v1/audio/music","href":"/api-reference/audio-music"},{"title":"Sound effects","api":"POST /v1/audio/sound-effects","href":"/api-reference/audio-sound-effects"},{"title":"Voice changer","api":"POST /v1/audio/voice-changer","href":"/api-reference/audio-voice-changer"},{"title":"Voice isolation","api":"POST /v1/audio/isolation","href":"/api-reference/audio-isolation"},{"title":"Dubbing","api":"POST /v1/audio/dubbing","href":"/api-reference/audio-dubbing"},{"title":"Music generation tasks","api":"POST /v1/music/generations","href":"/api-reference/music-generations"},{"title":"List models","api":"GET /v1/models","href":"/api-reference/list-models"}]},{"group":"Task Management","icon":"list-check","pages":[{"title":"Get task status","api":"GET /v1/tasks/{id}","href":"/api-reference/task-status"},{"title":"Task webhooks","href":"/api-reference/webhooks"}]}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/quickstart"}]},{"tab":"FAQs","pages":[{"title":"FAQs","href":"/faqs"}]}]},"title":"Chat Completions protocol - SnapGen","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"chunks":["OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","Page-CBCH2P7b.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js"]}