Streaming variant of generateContent. Pass ?alt=sse (as Google’s SDKs do) to receive Server-Sent Events; each data: line is a partial GenerateContentResponse. The request body matches :generateContent.
Comma-separated key:value usage-attribution tags (e.g. tenant:acme,project:demo, max 8). Recorded on the generation's billing/metrics rows; group spend by any key via GET /v2/analytics/usage?group_by=. Header-borne twin of the /v3/session URL prefix tags (which win per key when both are present); opper.-prefixed keys and session_id are reserved. Malformed values return 400.
Model id — a bare model name (e.g. gemini-2.5-flash), which routes over that model's pool (Gemini API and Vertex endpoints the project's allowlist permits) and falls over between them, or an Opper-canonical id (e.g. vertexai/gemini-2.5-flash), which pins that endpoint.
Opt in to automatic prompt caching for Anthropic-family models routed through this Gemini-shape endpoint: {"type":"ephemeral"} (optionally "ttl":"1h"). Places one moving cache breakpoint on the largest cacheable prefix. Caching is off unless set; no-op on Gemini and other providers with automatic server-side caching. Cache writes cost 1.25x input and reads 0.1x
Fallback models tried in order when the model before them fails for any reason (provider error; rate limit; timeout; a member blocked by one of your rules). Same OpenRouter shape: send the primary in model (or agent) and the rest here; or omit both and the first entry is the primary. Each entry is any model string: a bare pooled name; a provider/model id; an org alias. Not allowed together with a dynamic/ route. At most 10 entries. Which model answered is in the X-Opper-Served-Model header.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Opper","description":"The European AI gateway for agents: 700+ models from 50+ providers through one EU-hosted API, drop-in for the OpenAI, Anthropic and Gemini SDKs.","colors":{"primary":"#14cdcd","light":"#24cdcd","dark":"#2d9393"},"logo":{"light":"https://mintcdn.com/opper/EXrQN6z6604ZsBuP/logo/light.svg?fit=max\u0026auto=format\u0026n=EXrQN6z6604ZsBuP\u0026q=85\u0026s=fd4170c482c6cebc3c20d8f7f7e033f8","dark":"https://mintcdn.com/opper/EXrQN6z6604ZsBuP/logo/dark.svg?fit=max\u0026auto=format\u0026n=EXrQN6z6604ZsBuP\u0026q=85\u0026s=328888ac1f44b63c468d022fda86421d"},"favicon":"https://mintcdn.com/opper/EXrQN6z6604ZsBuP/favicon.png?fit=max\u0026auto=format\u0026n=EXrQN6z6604ZsBuP\u0026q=85\u0026s=f1229b80ac7eee56ba2c14789e5fe22e","api":{"examples":{"defaults":"required","languages":["Shell","python","typescript"]}},"appearance":{"default":"system"},"navbar":{"links":[{"href":"mailto:support@opper.ai","label":"Support"},{"href":"https://discord.gg/wcT3bc7Y4Y","label":"Discord"}],"primary":{"type":"button","label":"Login","href":"https://platform.opper.ai/auth/signin"}},"footer":{"socials":{"x":"https://x.com/opperai","github":"https://github.com/opper-ai","linkedin":"https://linkedin.com/company/opper-ai"}},"integrations":{"plausible":{"domain":"docs.opper.ai"}},"contextual":{"options":["copy","view"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"opper","hasAudioNarration":false,"actualSubdomain":"opper","customDomains":["docs.opper.ai"],"gitSource":{"type":"github","owner":"opper-ai","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae31a1886c7ae22426d0b9f","collectionId":"62e1b5b0-1252-4190-812e-7548a827b5dd","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae31a1886c7ae22426d0b9f"},"feedback":{"thumbs":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae34b6a9195f5361a7f1e09","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Documentation","count":88},{"language":"default","tag":"API Reference","count":78},{"language":"default","tag":"Platform APIs","count":41},{"language":"default","tag":"Management","count":30},{"language":"default","tag":"Apps","count":29},{"language":"default","tag":"Build","count":26},{"language":"default","tag":"Multimodality","count":22},{"language":"default","tag":"Observe \u0026 Control","count":15},{"language":"default","tag":"Gateway","count":14},{"language":"default","tag":"Compatibility","count":13}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"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":"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":[{"filePath":"style.css","content":"@keyframes oppFade{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes oppBlink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes oppDot{0%,80%,to{opacity:.25}40%{opacity:1}}.opp-term .opp-line{opacity:0;animation:oppFade .4s ease forwards}.opp-term a{color:inherit;text-decoration:none;cursor:default}.opp-cursor{display:inline-block;width:7px;height:1em;margin-left:5px;vertical-align:text-bottom;border-radius:1px;background:#14cdcd;animation:oppBlink 1.1s step-end infinite}.opp-dots span{display:inline-block;width:5px;height:5px;margin-right:3px;border-radius:50%;background:#6e7681;animation:oppDot 1.2s infinite}.opp-dots span:nth-child(2){animation-delay:.2s}.opp-dots span:nth-child(3){animation-delay:.4s}.opp-replay{margin-left:auto;background:0 0;border:1px solid #2b3440;color:#8b949e;font:inherit;font-size:11px;padding:2px 9px;border-radius:6px;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s,color .2s,border-color .2s}.opp-replay.show{opacity:1;pointer-events:auto}.opp-replay:hover{color:#14cdcd;border-color:#14cdcd}"}],"page":{"pagePath":"v3-api-reference/compatibility/stream-generate-content","slug":"/v3-api-reference/compatibility/stream-generate-content","pageMetadata":{"title":"Stream Generate Content","openapi":"post /v3/compat/v1beta/models/{model}:streamGenerateContent","description":"Streaming variant of generateContent. Pass `?alt=sse` (as Google's SDKs do) to receive Server-Sent Events; each `data:` line is a partial `GenerateContentResponse`. The request body matches `:generateContent`.","href":"/v3-api-reference/compatibility/stream-generate-content"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Streaming variant of generateContent. Pass \", _jsx(_components.code, {\n children: \"?alt=sse\"\n }), \" (as Google’s SDKs do) to receive Server-Sent Events; each \", _jsx(_components.code, {\n children: \"data:\"\n }), \" line is a partial \", _jsx(_components.code, {\n children: \"GenerateContentResponse\"\n }), \". The request body matches \", _jsx(_components.code, {\n children: \":generateContent\"\n }), \".\"]\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":"Stream Generate Content","openapi":"post /v3/compat/v1beta/models/{model}:streamGenerateContent","description":"Streaming variant of generateContent. Pass `?alt=sse` (as Google's SDKs do) to receive Server-Sent Events; each `data:` line is a partial `GenerateContentResponse`. The request body matches `:generateContent`.","href":"/v3-api-reference/compatibility/stream-generate-content"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/opper/40a2b9bd0ec03258/script.js"],"openApiReferenceData":{"operation":{"description":"Streaming variant of generateContent. Pass `?alt=sse` (as Google's SDKs do) to receive Server-Sent Events; each `data:` line is a partial `GenerateContentResponse`. The request body matches `:generateContent`.","operationId":"streamGenerateContent","parameters":["de2ceb74-1564-4804-8a02-464896f8521b","90855246-41b1-45fe-9cc4-c9aeee141ac8","ee43c379-744f-458f-8cdc-c24bc40889c8","39853a54-8a38-466c-bcb5-bb529b642544","aba1f7a3-eec2-4123-a702-ab67d65951c6"],"requestBody":"f9071872-4fb3-4e46-adf9-e46c5341b496","responses":{"200":"3c3a8d30-5e11-4f80-9d57-25fb9439b08d","400":"c9fbcde1-a64f-40e2-a574-25ade89aa09e","401":"f5db8bd3-7e83-450b-9d12-b6f86f738cea","500":"7900f53e-0e81-4aaf-8d88-636b565d5250"},"summary":"Stream Generate Content API","tags":["Compatibility"],"method":"post","type":"path","servers":["2c9c30ae-6d66-4614-b4a0-e353449fb124","7fa77d9f-a74b-4946-8960-ce25a925a27f"],"security":["ce2882f6-980e-482a-a089-9f4bf414c35e"],"path":"/v3/compat/v1beta/models/{model}:streamGenerateContent","baseUrlOptions":["https://api.opper.ai","http://localhost:8080"],"title":"Stream Generate Content API","codeSamples":[],"requestExampleLanguages":["bash","python","typescript"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"de2ceb74-1564-4804-8a02-464896f8521b":{"description":"Model id — a bare model name (e.g. `gemini-2.5-flash`), which routes over that model's pool (Gemini API and Vertex endpoints the project's allowlist permits) and falls over between them, or an Opper-canonical id (e.g. `vertexai/gemini-2.5-flash`), which pins that endpoint.","in":"path","name":"model","required":true,"schema":{"type":"string","isRequired":true,"description":"Model id — a bare model name (e.g. `gemini-2.5-flash`), which routes over that model's pool (Gemini API and Vertex endpoints the project's allowlist permits) and falls over between them, or an Opper-canonical id (e.g. `vertexai/gemini-2.5-flash`), which pins that endpoint.","uniqueKey":"","typeLabel":"string"}},"90855246-41b1-45fe-9cc4-c9aeee141ac8":{"description":"Set to `sse` for Server-Sent Events framing (matches Google SDK behaviour).","in":"query","name":"alt","schema":{"enum":["sse"],"type":"string","description":"Set to `sse` for Server-Sent Events framing (matches Google SDK behaviour).","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"ee43c379-744f-458f-8cdc-c24bc40889c8":{"description":"Function name for tracing and project-level guardrail function-scope filtering.","in":"header","name":"X-Opper-Name","schema":{"type":"string","description":"Function name for tracing and project-level guardrail function-scope filtering.","uniqueKey":"","typeLabel":"string"}},"39853a54-8a38-466c-bcb5-bb529b642544":{"description":"Parent span ID for distributed tracing context.","in":"header","name":"X-Opper-Parent-Span-Id","schema":{"format":"uuid","type":"string","description":"Parent span ID for distributed tracing context.","uniqueKey":"","typeLabel":"string\u003cuuid>"}},"aba1f7a3-eec2-4123-a702-ab67d65951c6":{"description":"Comma-separated `key:value` usage-attribution tags (e.g. `tenant:acme,project:demo`, max 8). Recorded on the generation's billing/metrics rows; group spend by any key via GET /v2/analytics/usage?group_by=\u003ckey>. Header-borne twin of the /v3/session URL prefix tags (which win per key when both are present); `opper.`-prefixed keys and `session_id` are reserved. Malformed values return 400.","in":"header","name":"X-Opper-Tags","schema":{"type":"string","description":"Comma-separated `key:value` usage-attribution tags (e.g. `tenant:acme,project:demo`, max 8). Recorded on the generation's billing/metrics rows; group spend by any key via GET /v2/analytics/usage?group_by=\u003ckey>. Header-borne twin of the /v3/session URL prefix tags (which win per key when both are present); `opper.`-prefixed keys and `session_id` are reserved. Malformed values return 400.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"content":{"application/json":{"schema":{"properties":{"contents":{"description":"Any value","isRequired":true,"uniqueKey":"contents","typeLabel":"any"},"input":{"description":"Any value","isRequired":true,"uniqueKey":"input","typeLabel":"any"},"agent":{"type":"string","uniqueKey":"agent","typeLabel":"string"},"background":{"type":"boolean","uniqueKey":"background","typeLabel":"boolean"},"cache_control":{"description":"Opt in to automatic prompt caching for Anthropic-family models routed through this Gemini-shape endpoint: {\"type\":\"ephemeral\"} (optionally \"ttl\":\"1h\"). Places one moving cache breakpoint on the largest cacheable prefix. Caching is off unless set; no-op on Gemini and other providers with automatic server-side caching. Cache writes cost 1.25x input and reads 0.1x","type":"object","uniqueKey":"cache_control","typeLabel":"object"},"custom_model_credentials":{"properties":{"api_key":{"type":"string","isRequired":true,"uniqueKey":"custom_model_credentials.api_key","typeLabel":"string"},"identifier":{"type":"string","isRequired":true,"uniqueKey":"custom_model_credentials.identifier","typeLabel":"string"},"base_url":{"type":"string","uniqueKey":"custom_model_credentials.base_url","typeLabel":"string"},"extra":{"type":"object","uniqueKey":"custom_model_credentials.extra","typeLabel":"object"},"url":{"type":"string","uniqueKey":"custom_model_credentials.url","typeLabel":"string"}},"required":["identifier","api_key"],"type":"object","uniqueKey":"custom_model_credentials","typeLabel":"object"},"generation_config":{"properties":{"max_output_tokens":{"type":"integer","uniqueKey":"generation_config.max_output_tokens","typeLabel":"integer"},"response_json_schema":{"type":"object","uniqueKey":"generation_config.response_json_schema","typeLabel":"object"},"response_mime_type":{"type":"string","uniqueKey":"generation_config.response_mime_type","typeLabel":"string"},"response_schema":{"type":"object","uniqueKey":"generation_config.response_schema","typeLabel":"object"},"seed":{"type":"integer","uniqueKey":"generation_config.seed","typeLabel":"integer"},"stop_sequences":{"items":{"type":"string","uniqueKey":"generation_config.stop_sequences.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"generation_config.stop_sequences","typeLabel":"string[]"},"temperature":{"type":"number","uniqueKey":"generation_config.temperature","typeLabel":"number"},"thinking_config":{"properties":{"include_thoughts":{"type":"boolean","uniqueKey":"generation_config.thinking_config.include_thoughts","typeLabel":"boolean"},"thinking_budget":{"type":"integer","uniqueKey":"generation_config.thinking_config.thinking_budget","typeLabel":"integer"},"thinking_level":{"type":"string","uniqueKey":"generation_config.thinking_config.thinking_level","typeLabel":"string"}},"type":"object","uniqueKey":"generation_config.thinking_config","typeLabel":"object"},"thinking_level":{"type":"string","uniqueKey":"generation_config.thinking_level","typeLabel":"string"},"thinking_summaries":{"type":"string","uniqueKey":"generation_config.thinking_summaries","typeLabel":"string"},"tool_choice":{"description":"Any value","uniqueKey":"generation_config.tool_choice","typeLabel":"any"},"top_k":{"type":"integer","uniqueKey":"generation_config.top_k","typeLabel":"integer"},"top_p":{"type":"number","uniqueKey":"generation_config.top_p","typeLabel":"number"}},"type":"object","uniqueKey":"generation_config","typeLabel":"object"},"metadata":{"type":"object","uniqueKey":"metadata","typeLabel":"object"},"model":{"type":"string","uniqueKey":"model","typeLabel":"string"},"models":{"description":"Fallback models tried in order when the model before them fails for any reason (provider error; rate limit; timeout; a member blocked by one of your rules). Same OpenRouter shape: send the primary in model (or agent) and the rest here; or omit both and the first entry is the primary. Each entry is any model string: a bare pooled name; a provider/model id; an org alias. Not allowed together with a dynamic/\u003cname> route. At most 10 entries. Which model answered is in the X-Opper-Served-Model header.","items":{"type":"string","uniqueKey":"models.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"models","typeLabel":"string[]"},"previous_interaction_id":{"type":"string","uniqueKey":"previous_interaction_id","typeLabel":"string"},"response_format":{"type":"object","uniqueKey":"response_format","typeLabel":"object"},"response_mime_type":{"type":"string","uniqueKey":"response_mime_type","typeLabel":"string"},"safety_settings":{"items":{"properties":{"category":{"type":"string","uniqueKey":"safety_settings.items.[INDEX].category","typeLabel":"string"},"threshold":{"type":"string","uniqueKey":"safety_settings.items.[INDEX].threshold","typeLabel":"string"}},"type":"object","uniqueKey":"safety_settings.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"safety_settings","typeLabel":"object[]"},"store":{"type":"boolean","uniqueKey":"store","typeLabel":"boolean"},"stream":{"type":"boolean","uniqueKey":"stream","typeLabel":"boolean"},"system_instruction":{"properties":{"Text":{"type":"string","isRequired":true,"uniqueKey":"system_instruction.Text","typeLabel":"string"}},"required":["Text"],"type":"object","uniqueKey":"system_instruction","typeLabel":"object"},"tool_config":{"properties":{"function_calling_config":{"properties":{"allowed_function_names":{"items":{"type":"string","uniqueKey":"tool_config.function_calling_config.allowed_function_names.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"tool_config.function_calling_config.allowed_function_names","typeLabel":"string[]"},"mode":{"type":"string","uniqueKey":"tool_config.function_calling_config.mode","typeLabel":"string"}},"type":"object","uniqueKey":"tool_config.function_calling_config","typeLabel":"object"}},"type":"object","uniqueKey":"tool_config","typeLabel":"object"},"tools":{"items":{"properties":{"codeExecution":{"description":"Any value","uniqueKey":"tools.items.[INDEX].codeExecution","typeLabel":"any"},"code_execution":{"description":"Any value","uniqueKey":"tools.items.[INDEX].code_execution","typeLabel":"any"},"description":{"type":"string","uniqueKey":"tools.items.[INDEX].description","typeLabel":"string"},"function_declarations":{"items":{"properties":{"name":{"type":"string","isRequired":true,"uniqueKey":"tools.items.[INDEX].function_declarations.items.[INDEX].name","typeLabel":"string"},"description":{"type":"string","uniqueKey":"tools.items.[INDEX].function_declarations.items.[INDEX].description","typeLabel":"string"},"parameters":{"type":"object","uniqueKey":"tools.items.[INDEX].function_declarations.items.[INDEX].parameters","typeLabel":"object"},"parameters_json_schema":{"description":"Any value","uniqueKey":"tools.items.[INDEX].function_declarations.items.[INDEX].parameters_json_schema","typeLabel":"any"}},"required":["name"],"type":"object","uniqueKey":"tools.items.[INDEX].function_declarations.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"tools.items.[INDEX].function_declarations","typeLabel":"object[]"},"googleSearch":{"description":"Any value","uniqueKey":"tools.items.[INDEX].googleSearch","typeLabel":"any"},"googleSearchRetrieval":{"description":"Any value","uniqueKey":"tools.items.[INDEX].googleSearchRetrieval","typeLabel":"any"},"google_search":{"description":"Any value","uniqueKey":"tools.items.[INDEX].google_search","typeLabel":"any"},"google_search_retrieval":{"description":"Any value","uniqueKey":"tools.items.[INDEX].google_search_retrieval","typeLabel":"any"},"name":{"type":"string","uniqueKey":"tools.items.[INDEX].name","typeLabel":"string"},"parameters":{"type":"object","uniqueKey":"tools.items.[INDEX].parameters","typeLabel":"object"},"type":{"type":"string","uniqueKey":"tools.items.[INDEX].type","typeLabel":"string"},"urlContext":{"description":"Any value","uniqueKey":"tools.items.[INDEX].urlContext","typeLabel":"any"},"url_context":{"description":"Any value","uniqueKey":"tools.items.[INDEX].url_context","typeLabel":"any"}},"type":"object","uniqueKey":"tools.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"tools","typeLabel":"object[]"}},"required":["input","contents"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"contents":"\u003cunknown>","input":"\u003cunknown>","agent":"\u003cstring>","background":true,"cache_control":{},"generation_config":{"max_output_tokens":123,"response_json_schema":{},"response_mime_type":"\u003cstring>","response_schema":{},"seed":123,"stop_sequences":["\u003cstring>"],"temperature":123,"thinking_config":{"include_thoughts":true,"thinking_budget":123,"thinking_level":"\u003cstring>"},"thinking_level":"\u003cstring>","thinking_summaries":"\u003cstring>","tool_choice":"\u003cunknown>","top_k":123,"top_p":123},"metadata":{},"model":"\u003cstring>","models":["\u003cstring>"],"previous_interaction_id":"\u003cstring>","response_format":{},"response_mime_type":"\u003cstring>","safety_settings":[{"category":"\u003cstring>","threshold":"\u003cstring>"}],"store":true,"stream":true,"tool_config":{"function_calling_config":{"allowed_function_names":["\u003cstring>"],"mode":"\u003cstring>"}},"tools":[{"codeExecution":"\u003cunknown>","code_execution":"\u003cunknown>","description":"\u003cstring>","function_declarations":[{"name":"\u003cstring>","description":"\u003cstring>","parameters":{},"parameters_json_schema":"\u003cunknown>"}],"googleSearch":"\u003cunknown>","googleSearchRetrieval":"\u003cunknown>","google_search":"\u003cunknown>","google_search_retrieval":"\u003cunknown>","name":"\u003cstring>","parameters":{},"type":"\u003cstring>","urlContext":"\u003cunknown>","url_context":"\u003cunknown>"}]}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"3c3a8d30-5e11-4f80-9d57-25fb9439b08d":{"content":{"application/json":{"schema":{"properties":{"candidates":{"items":{"properties":{"content":{"properties":{"parts":{"items":{"properties":{"codeExecutionResult":{"type":"object","uniqueKey":"candidates.items.[INDEX].content.parts.items.[INDEX].codeExecutionResult","typeLabel":"object"},"executableCode":{"type":"object","uniqueKey":"candidates.items.[INDEX].content.parts.items.[INDEX].executableCode","typeLabel":"object"},"functionCall":{"type":"object","uniqueKey":"candidates.items.[INDEX].content.parts.items.[INDEX].functionCall","typeLabel":"object"},"inlineData":{"type":"object","uniqueKey":"candidates.items.[INDEX].content.parts.items.[INDEX].inlineData","typeLabel":"object"},"text":{"type":"string","uniqueKey":"candidates.items.[INDEX].content.parts.items.[INDEX].text","typeLabel":"string"},"thought":{"type":"boolean","uniqueKey":"candidates.items.[INDEX].content.parts.items.[INDEX].thought","typeLabel":"boolean"},"thoughtSignature":{"type":"string","uniqueKey":"candidates.items.[INDEX].content.parts.items.[INDEX].thoughtSignature","typeLabel":"string"}},"type":"object","uniqueKey":"candidates.items.[INDEX].content.parts.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"candidates.items.[INDEX].content.parts","typeLabel":"object[]"},"role":{"type":"string","uniqueKey":"candidates.items.[INDEX].content.role","typeLabel":"string"}},"required":["parts"],"type":"object","isRequired":true,"uniqueKey":"candidates.items.[INDEX].content","typeLabel":"object"},"index":{"type":"integer","isRequired":true,"uniqueKey":"candidates.items.[INDEX].index","typeLabel":"integer"},"finishReason":{"type":"string","uniqueKey":"candidates.items.[INDEX].finishReason","typeLabel":"string"},"groundingMetadata":{"type":"object","uniqueKey":"candidates.items.[INDEX].groundingMetadata","typeLabel":"object"},"urlContextMetadata":{"type":"object","uniqueKey":"candidates.items.[INDEX].urlContextMetadata","typeLabel":"object"}},"required":["content","index"],"type":"object","uniqueKey":"candidates.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"candidates","typeLabel":"object[]"},"modelVersion":{"type":"string","uniqueKey":"modelVersion","typeLabel":"string"},"responseId":{"type":"string","uniqueKey":"responseId","typeLabel":"string"},"usageMetadata":{"properties":{"cachedContentTokenCount":{"type":"integer","uniqueKey":"usageMetadata.cachedContentTokenCount","typeLabel":"integer"},"candidatesTokenCount":{"type":"integer","uniqueKey":"usageMetadata.candidatesTokenCount","typeLabel":"integer"},"opper":{"type":"object","uniqueKey":"usageMetadata.opper","typeLabel":"object"},"promptTokenCount":{"type":"integer","uniqueKey":"usageMetadata.promptTokenCount","typeLabel":"integer"},"thoughtsTokenCount":{"type":"integer","uniqueKey":"usageMetadata.thoughtsTokenCount","typeLabel":"integer"},"totalTokenCount":{"type":"integer","uniqueKey":"usageMetadata.totalTokenCount","typeLabel":"integer"}},"type":"object","uniqueKey":"usageMetadata","typeLabel":"object"}},"required":["candidates"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"candidates":[{"content":{"parts":[{"codeExecutionResult":{},"executableCode":{},"functionCall":{},"inlineData":{},"text":"\u003cstring>","thought":true,"thoughtSignature":"\u003cstring>"}],"role":"\u003cstring>"},"index":123,"finishReason":"\u003cstring>","groundingMetadata":{},"urlContextMetadata":{}}],"modelVersion":"\u003cstring>","responseId":"\u003cstring>","usageMetadata":{"cachedContentTokenCount":123,"candidatesTokenCount":123,"opper":{},"promptTokenCount":123,"thoughtsTokenCount":123,"totalTokenCount":123}}}},"exampleType":"generated"},"text/event-stream":{"schema":{"description":"Server-Sent Events stream (`?alt=sse`). Each event is a `data: \u003cjson>` line carrying a partial `GenerateContentResponse` (incremental `candidates[].content.parts[]`); no `event:` line. The final chunk carries `finishReason` and `usageMetadata` (token counts + Opper `cost` extension under `usageMetadata.opper`).","type":"string","uniqueKey":"","typeLabel":"string"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"}},"description":"Successful response","headers":{"X-Opper-Cost":{"description":"Execution cost of the request as a floating-point number.","schema":{"format":"double","type":"number"}}},"exampleType":"generated"},"c9fbcde1-a64f-40e2-a574-25ade89aa09e":{"content":{"application/json":{"schema":{"properties":{"error":{"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Any value","uniqueKey":"error.details","typeLabel":"any"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","uniqueKey":"meta","typeLabel":"object"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>","details":"\u003cunknown>"},"meta":{}}}},"exampleType":"generated"}},"description":"Bad request","exampleType":"generated"},"f5db8bd3-7e83-450b-9d12-b6f86f738cea":{"description":"Unauthorized - missing or invalid API key","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"7900f53e-0e81-4aaf-8d88-636b565d5250":{"content":{"application/json":{"schema":{"properties":{"error":{"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"description":"Any value","uniqueKey":"error.details","typeLabel":"any"}},"required":["code","message"],"type":"object","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","uniqueKey":"meta","typeLabel":"object"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>","details":"\u003cunknown>"},"meta":{}}}},"exampleType":"generated"}},"description":"Internal server error","exampleType":"generated"}},"security":{"ce2882f6-980e-482a-a089-9f4bf414c35e":{"BearerAuth":{"bearerFormat":"API Key","description":"API key authentication. Pass your API key as a Bearer token.","scheme":"bearer","type":"http","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"2c9c30ae-6d66-4614-b4a0-e353449fb124":{"description":"Production","url":"https://api.opper.ai"},"7fa77d9f-a74b-4946-8960-ce25a925a27f":{"description":"Local development","url":"http://localhost:8080"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"bearerFormat":"API Key","description":"API key authentication. Pass your API key as a Bearer token.","scheme":"bearer","type":"http","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key authentication. Pass your API key as a Bearer token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"openapi-v3.json"},"subdomain":"opper","siteName":"Opper","title":"Stream Generate Content - Opper","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-06-08T13:52:54.298Z","gitLastModified":"2026-06-08T13:52:28.000Z","originalFileLocation":"v3-api-reference/compatibility/stream-generate-content.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=\"Streaming variant of generateContent. Pass ?alt=sse (as Google\u0026#x27;s SDKs do) to receive Server-Sent Events; each data: line is a partial GenerateContentResponse. The request body matches :generateContent.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Opper\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/opper/QTlMDo19G0sAM5ID/_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/opper/QTlMDo19G0sAM5ID/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/opper/QTlMDo19G0sAM5ID/_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/opper/QTlMDo19G0sAM5ID/_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/opper/QTlMDo19G0sAM5ID/_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/opper/QTlMDo19G0sAM5ID/_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/opper/QTlMDo19G0sAM5ID/_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/opper/QTlMDo19G0sAM5ID/_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/opper/QTlMDo19G0sAM5ID/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Stream Generate Content - Opper\">\u003cmeta data-mint-head property=\"og:description\" content=\"Streaming variant of generateContent. Pass ?alt=sse (as Google\u0026#x27;s SDKs do) to receive Server-Sent Events; each data: line is a partial GenerateContentResponse. The request body matches :generateContent.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Opper\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.opper.ai/v3-api-reference/compatibility/stream-generate-content\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://opper.mintlify.app/_mintlify/api/og/v2?division=Google\u0026amp;title=Stream+Generate+Content\u0026amp;description=Streaming+variant+of+generateContent.+Pass+%60%3Falt%3Dsse%60+%28as+Google%27s+SDKs+do%29+to+receive+Server-Sent+Events%3B+each+%60data%3A%60+line+is+a+partial+%60GenerateContentRespon\u0026amp;theme=2bfe23844db8025c327f2519\u0026amp;signature=1d15d00bee621bc4e9bc2f9beecf182da30a09505824128f729b9f7b3c110258\">\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=\"Stream Generate Content - Opper\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Streaming variant of generateContent. Pass ?alt=sse (as Google\u0026#x27;s SDKs do) to receive Server-Sent Events; each data: line is a partial GenerateContentResponse. The request body matches :generateContent.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://opper.mintlify.app/_mintlify/api/og/v2?division=Google\u0026amp;title=Stream+Generate+Content\u0026amp;description=Streaming+variant+of+generateContent.+Pass+%60%3Falt%3Dsse%60+%28as+Google%27s+SDKs+do%29+to+receive+Server-Sent+Events%3B+each+%60data%3A%60+line+is+a+partial+%60GenerateContentRespon\u0026amp;theme=2bfe23844db8025c327f2519\u0026amp;signature=1d15d00bee621bc4e9bc2f9beecf182da30a09505824128f729b9f7b3c110258\">\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/opper/QTlMDo19G0sAM5ID/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Opper\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#14cdcd\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.opper.ai/v3-api-reference/compatibility/stream-generate-content\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v3-api-reference/compatibility/stream-generate-content.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.opper.ai/#organization\",\"name\":\"Opper\",\"url\":\"https://docs.opper.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/opper/EXrQN6z6604ZsBuP/logo/light.svg?fit=max\u0026auto=format\u0026n=EXrQN6z6604ZsBuP\u0026q=85\u0026s=fd4170c482c6cebc3c20d8f7f7e033f8\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.opper.ai#website\",\"name\":\"Opper\",\"url\":\"https://docs.opper.ai\",\"publisher\":{\"@id\":\"https://docs.opper.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.opper.ai/v3-api-reference/compatibility/stream-generate-content#webpage\",\"url\":\"https://docs.opper.ai/v3-api-reference/compatibility/stream-generate-content\",\"name\":\"Stream Generate Content\",\"description\":\"Streaming variant of generateContent. Pass ?alt=sse (as Google's SDKs do) to receive Server-Sent Events; each data: line is a partial GenerateContentResponse. The request body matches :generateContent.\",\"dateModified\":\"2026-06-08T13:52:28.000Z\",\"isPartOf\":{\"@id\":\"https://docs.opper.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.opper.ai/v3-api-reference/compatibility/stream-generate-content#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.opper.ai/v3-api-reference/compatibility/stream-generate-content#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Compatibility\",\"item\":\"https://docs.opper.ai/v3-api-reference/compatibility/chat-completions\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Google\",\"item\":\"https://docs.opper.ai/v3-api-reference/compatibility/create-interaction\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Stream Generate Content\",\"item\":\"https://docs.opper.ai/v3-api-reference/compatibility/stream-generate-content\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.opper.ai/v3-api-reference/compatibility/stream-generate-content#apireference\",\"headline\":\"Stream Generate Content\",\"name\":\"Stream Generate Content\",\"description\":\"Streaming variant of generateContent. Pass ?alt=sse (as Google's SDKs do) to receive Server-Sent Events; each data: line is a partial GenerateContentResponse. The request body matches :generateContent.\",\"url\":\"https://docs.opper.ai/v3-api-reference/compatibility/stream-generate-content\",\"mainEntityOfPage\":{\"@id\":\"https://docs.opper.ai/v3-api-reference/compatibility/stream-generate-content#webpage\"},\"dateModified\":\"2026-06-08T13:52:28.000Z\",\"publisher\":{\"@id\":\"https://docs.opper.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.opper.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Opper\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Opper","nav":{"global":null,"tabs":[{"tab":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":"/overview/about"}]},{"tab":"Cookbook","icon":"github","href":"https://github.com/opper-ai/opper-cookbook"},{"tab":"API Reference","icon":"square-terminal","groups":[{"group":"Compatibility","pages":[{"group":"OpenAI","expanded":true,"pages":[{"title":"Chat Completions","openapi":"post /v3/compat/chat/completions","href":"/v3-api-reference/compatibility/chat-completions"},{"title":"Responses","openapi":"post /v3/compat/responses","href":"/v3-api-reference/compatibility/create-response"},{"title":"Embeddings","openapi":"post /v3/compat/embeddings","href":"/v3-api-reference/compatibility/create-embeddings"},{"title":"Decisions","openapi":"post /v3/compat/decisions","href":"/v3-api-reference/compatibility/create-decision"},{"title":"List Models","openapi":"get /v3/compat/models","href":"/v3-api-reference/compatibility/list-models"}]},{"group":"Anthropic","expanded":true,"pages":[{"title":"Messages","openapi":"post /v3/compat/v1/messages","href":"/v3-api-reference/compatibility/create-message"},{"title":"Count Tokens","openapi":"post /v3/compat/v1/messages/count_tokens","href":"/v3-api-reference/compatibility/count-message-tokens"}]},{"group":"Google","expanded":true,"pages":[{"title":"Interactions","openapi":"post /v3/compat/v1beta/interactions","href":"/v3-api-reference/compatibility/create-interaction"},{"title":"Generate Content","openapi":"post /v3/compat/v1beta/models/{model}:generateContent","description":"Google Gemini-compatible generateContent endpoint — the drop-in surface for SDKs calling `models.generate_content()`. The request body is the Gemini `GenerateContentRequest` shape (camelCase `contents` / `systemInstruction` / `generationConfig`); the response is `candidates[].content.parts[]` + `usageMetadata`. The `{model}` path segment resolves as on the other compat endpoints: a bare model name (e.g. `gemini-2.5-flash`) routes over that model's pool, and an Opper-canonical id (e.g. `vertexai/gemini-2.5-flash`) pins that endpoint.","href":"/v3-api-reference/compatibility/generate-content"},{"title":"Stream Generate Content","openapi":"post /v3/compat/v1beta/models/{model}:streamGenerateContent","href":"/v3-api-reference/compatibility/stream-generate-content"},{"title":"Count Tokens","openapi":"post /v3/compat/v1beta/models/{model}:countTokens","description":"Google-compatible countTokens endpoint for pre-flight context-window sizing. The request body matches `:generateContent`. NOTE: Opper has no in-process Gemini tokenizer and returns a chars/4 heuristic (±~20% on English prose) — sufficient for \"does my prompt fit?\" checks but not for exact cost projection.","href":"/v3-api-reference/compatibility/count-tokens"}]},{"group":"TypeSafe","expanded":true,"pages":[{"title":"System One evaluation","openapi":"post /v3/compat/v1/systemone","href":"/v3-api-reference/compatibility/systemone"}]},{"group":"Other","expanded":true,"pages":[{"title":"OpenResponses","openapi":"post /v3/compat/openresponses","href":"/v3-api-reference/compatibility/openresponses"}]}]},{"group":"Multimodality","pages":[{"group":"Images","pages":[{"title":"Generate an image","openapi":"post /v3/images","href":"/v3-api-reference/images/create-image"},{"title":"List image models","openapi":"get /v3/images/models","href":"/v3-api-reference/images/list-image-models"}]},{"group":"Audio","pages":[{"title":"Generate speech","openapi":"post /v3/audio/speech","href":"/v3-api-reference/audio/create-speech"},{"title":"Transcribe audio","openapi":"post /v3/audio/transcriptions","href":"/v3-api-reference/audio/create-transcription"},{"title":"Generate audio","openapi":"post /v3/audio/generations","href":"/v3-api-reference/audio/create-audio-generation"},{"title":"List audio models","openapi":"get /v3/audio/models","href":"/v3-api-reference/audio/list-audio-models"},{"title":"Create Voice","openapi":"post /v3/audio/voices","href":"/v3-api-reference/audio/create-voice"},{"title":"List Voices","openapi":"get /v3/audio/voices","href":"/v3-api-reference/audio/list-voices"},{"title":"Get Voice","openapi":"get /v3/audio/voices/{id}","href":"/v3-api-reference/audio/get-voice"},{"title":"Delete Voice","openapi":"delete /v3/audio/voices/{id}","href":"/v3-api-reference/audio/delete-voice"}]},{"group":"Video","pages":[{"title":"Generate a video","openapi":"post /v3/videos","href":"/v3-api-reference/video/create-video"},{"title":"List video models","openapi":"get /v3/videos/models","href":"/v3-api-reference/video/list-video-models"}]},{"group":"Rerank","pages":[{"title":"Rerank documents","openapi":"post /v3/rerank","href":"/v3-api-reference/rerank/rerank-documents"}]},{"group":"OCR","pages":[{"title":"Extract text (OCR)","openapi":"post /v3/ocr","href":"/v3-api-reference/ocr/extract-text"},{"title":"List OCR models","openapi":"get /v3/ocr/models","href":"/v3-api-reference/ocr/list-ocr-models"}]}]},{"group":"Files","pages":[{"title":"Upload a file","openapi":"post /v3/files","href":"/v3-api-reference/files/upload-file"},{"title":"List files","openapi":"get /v3/files","href":"/v3-api-reference/files/list-files"},{"title":"Get file metadata","openapi":"get /v3/files/{id}","href":"/v3-api-reference/files/get-file"},{"title":"Get a file download URL","openapi":"get /v3/files/{id}/content","href":"/v3-api-reference/files/get-file-content"},{"title":"Set or clear a file's expiry","openapi":"patch /v3/files/{id}","href":"/v3-api-reference/files/update-file"},{"title":"Delete a file","openapi":"delete /v3/files/{id}","href":"/v3-api-reference/files/delete-file"}]},{"group":"Realtime","pages":[{"title":"Realtime protocol","href":"/v3-api-reference/realtime/protocol"},{"title":"Mint realtime ticket","href":"/v3-api-reference/realtime/create-realtime-session"}]},{"group":"Roundtable","pages":[{"openapi":"post /v3/roundtable","title":"Roundtable","href":"/v3-api-reference/roundtable/create-roundtable"}]},{"group":"Platform APIs","pages":[{"group":"Generations","pages":[{"openapi":"get /v3/generations","title":"List generations","href":"/v3-api-reference/generations/list-generations"},{"openapi":"get /v3/generations/{id}","title":"Get generation","href":"/v3-api-reference/generations/get-generation"},{"openapi":"delete /v3/generations/{id}","title":"Delete generation","href":"/v3-api-reference/generations/delete-generation"}]},{"group":"Management","pages":[{"openapi":"get /management/v1/projects","title":"List projects","href":"/v3-api-reference/management/list-projects"},{"openapi":"post /management/v1/projects","title":"Create a project","href":"/v3-api-reference/management/create-project"},{"openapi":"get /management/v1/projects/{uuid}","title":"Get a project","href":"/v3-api-reference/management/get-project"},{"openapi":"patch /management/v1/projects/{uuid}","title":"Update a project","href":"/v3-api-reference/management/update-project"},{"openapi":"delete /management/v1/projects/{uuid}","title":"Delete a project","href":"/v3-api-reference/management/delete-project"},{"openapi":"get /management/v1/projects/{uuid}/api-keys","title":"List a project's API keys","href":"/v3-api-reference/management/list-api-keys"},{"openapi":"post /management/v1/projects/{uuid}/api-keys","title":"Mint an API key","href":"/v3-api-reference/management/create-api-key"},{"openapi":"delete /management/v1/projects/{uuid}/api-keys/{id}","title":"Delete an API key","href":"/v3-api-reference/management/delete-api-key"},{"openapi":"get /management/v1/members","title":"List members","href":"/v3-api-reference/management/list-members"},{"openapi":"delete /management/v1/members/{user_uuid}","title":"Remove a member","href":"/v3-api-reference/management/remove-member"},{"openapi":"get /management/v1/invites","title":"List invitations","href":"/v3-api-reference/management/list-invites"},{"openapi":"post /management/v1/invites","title":"Invite a member","href":"/v3-api-reference/management/create-invite"},{"openapi":"delete /management/v1/invites/{id}","title":"Revoke an invitation","href":"/v3-api-reference/management/revoke-invite"},{"openapi":"get /management/v1/dynamic-routes","title":"List dynamic routes","href":"/v3-api-reference/management/list-dynamic-routes"},{"openapi":"post /management/v1/dynamic-routes","title":"Create a dynamic route","href":"/v3-api-reference/management/create-dynamic-route"},{"openapi":"get /management/v1/dynamic-routes/{name}","title":"Get a dynamic route","href":"/v3-api-reference/management/get-dynamic-route"},{"openapi":"put /management/v1/dynamic-routes/{name}/draft","title":"Replace the draft","href":"/v3-api-reference/management/update-dynamic-route-draft"},{"openapi":"post /management/v1/dynamic-routes/{name}/deploy","title":"Deploy the draft","href":"/v3-api-reference/management/deploy-dynamic-route"},{"openapi":"post /management/v1/dynamic-routes/{name}/simulate","title":"Simulate a request through the route","href":"/v3-api-reference/management/simulate-dynamic-route"},{"openapi":"get /management/v1/dynamic-routes/{name}/versions","title":"List a route's versions","href":"/v3-api-reference/management/list-dynamic-route-versions"},{"openapi":"get /management/v1/dynamic-routes/{name}/versions/{version_number}","title":"Get a version","href":"/v3-api-reference/management/get-dynamic-route-version"},{"openapi":"post /management/v1/dynamic-routes/{name}/versions/{version_number}/rollback","title":"Roll back to a version","href":"/v3-api-reference/management/rollback-dynamic-route"},{"openapi":"post /management/v1/dynamic-routes/{name}/versions/{version_number}/restore-to-draft","title":"Copy a version into the draft","href":"/v3-api-reference/management/restore-dynamic-route-version-to-draft"},{"openapi":"delete /management/v1/dynamic-routes/{name}","title":"Delete a dynamic route","href":"/v3-api-reference/management/delete-dynamic-route"},{"openapi":"get /management/v1/controls/rules","title":"List control rules","href":"/v3-api-reference/management/list-control-rules"},{"openapi":"post /management/v1/controls/rules","title":"Create a control rule","href":"/v3-api-reference/management/create-control-rule"},{"openapi":"patch /management/v1/controls/rules/{uuid}","title":"Update a control rule","href":"/v3-api-reference/management/update-control-rule"},{"openapi":"delete /management/v1/controls/rules/{uuid}","title":"Delete a control rule","href":"/v3-api-reference/management/delete-control-rule"},{"openapi":"get /management/v1/usage","title":"Get usage and cost","href":"/v3-api-reference/management/get-usage"},{"openapi":"post /management/v1/management-keys/_self/disable","title":"Disable the calling management key","href":"/v3-api-reference/management/disable-management-key"}]},{"group":"Models","pages":[{"openapi":"get /v3/models","title":"List models","href":"/v3-api-reference/models/list-models"}]},{"group":"Spans","pages":[{"openapi":"post /v3/spans","title":"Create span","href":"/v3-api-reference/spans/create-span"},{"openapi":"patch /v3/spans/{id}","title":"Update span","href":"/v3-api-reference/spans/update-span"}]},{"group":"Tools","pages":[{"openapi":"post /v3/tools/web/fetch","title":"Web fetch","href":"/v3-api-reference/tools/web-fetch"},{"openapi":"post /v3/tools/web/search","title":"Web search","href":"/v3-api-reference/tools/web-search"}]},{"group":"System","pages":[{"openapi":"get /health","title":"Health check","href":"/v3-api-reference/system/health-check"},{"openapi":"get /v3/openapi.json","title":"OpenAPI spec (JSON)","href":"/v3-api-reference/system/openapi-spec-json"},{"openapi":"get /v3/openapi.yaml","title":"OpenAPI spec (YAML)","href":"/v3-api-reference/system/openapi-spec-yaml"}]}]}]}]},"title":"Stream Generate Content - Opper","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"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","Markdown-Cc16CX65.js","clsx-Cs6nMGht.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-zbf22OZA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C_fs-y5n.js"]}