OpenAI-compatible chat completions. Routes the request through the
gateway’s provider layer (OpenAI, Azure OpenAI, Anthropic, Vertex,
Bedrock, OpenAI-compatible) based on the resolved model spec.
Streaming. When stream: true, the response is a text/event-stream
of OpenAI-compatible delta chunks (ChatCompletionChunk) followed by a
literal data: [DONE] payload, then one final chat.completion frame
(same shape as ChatCompletionResponse) carrying the assembled message,
finish_reason and usage. Provider-native stream shapes
(Anthropic, Bedrock, Vertex) are normalised to OpenAI deltas before
being forwarded. Provider errors mid-stream are emitted as a synthetic
chunk carrying an error object and a content fallback message,
followed by [DONE].
Failover. When the requested model was attempted and failed, and a
fallback answered instead (governance failover mapping merged with
fallback_models), the switch is reported as
failover: { from_model, to_model } on the response body, or on the
first forwarded chunk when streaming.
Thinking blocks. Anthropic thinking blocks are never streamed. They
are returned on the assistant message as reasoning_details, tagged
with reasoning_model (the model that answered). Send both back
verbatim when replaying the turn: the gateway forwards the blocks only
to that same model, drops them for any other, and never sends the
reasoning_model tag to a provider.
When stream: false (default), the response is a single JSON
ChatCompletionResponse. The non-streaming response is enriched with
usage.cost, usage.duration_ms, and usage.carbon (Prisme.ai
extensions over the standard OpenAI shape).
Prisme.ai extensions in the request body:
task_id - opaque correlation identifier for A2A flows.
analytics_context - caller-supplied context (orgSlug, agent_id,
user_id, context_id, agent_allowed_models, call_type,
message_turn) used to enrich analytics.llm.completion events.
fallback_models - ordered models tried when the requested model
fails, merged with the governance failover mapping; each one is
checked against the caller’s access like the primary.
Rate limiting. 100 requests per 60 seconds per consumer
(auth.user_id or session.id).
Governance. Calls may be rejected with 403 MODEL_NOT_ALLOWED or
429 quota errors based on the caller’s organization governance
(resolved via ai-governance-v2), or with 403 HEADER_POLICY_VIOLATION
when a required upstream identity header would reach the model provider
empty (see header_policy).
User-bound credential carrying an identity: either a session JWT
or a user access token (at:*) generated from the user settings UI.
Send as Authorization: Bearer <token>.
Org API keys (iak_*) are not accepted here - they carry
no user identity. Use the x-prismeai-api-key header instead
(see OrgApiKeyAuth).
Body
application/json
OpenAI-compatible chat completion request. Only the fields actually
accepted by the gateway are documented here.
Anthropic thinking blocks produced with this assistant message
(thinking blocks carry thinking and signature,
redacted_thinking blocks carry data). Returned by the gateway
and meant to be sent back verbatim when the turn is replayed.
Gateway model id that produced reasoning_details. On replay the
blocks are forwarded only when this matches the model being
called; the tag itself is never sent to a provider.
Model id from the catalogue (e.g. gpt-4o,
eu.anthropic.claude-sonnet-4-20250514-v1:0,
vertex-gemini-2.5-flash). Defaults to the gateway's
defaults.completions model when omitted.
Max tokens to generate, OpenAI's newer name for max_tokens. Either one is accepted; the gateway forwards a single max_tokens (the lower value when both are sent), capped to the model's limits.max_response_tokens. It is sent back as max_completion_tokens where the model requires it, through the model's rename_params or the provider's parameterAliases. A provider entry that excludes max_tokens without such a rename sends no output limit.
Prisme.ai extension. Ordered fallback models tried when the
requested model fails (merged with the governance failover
mapping). Each one is checked against the caller's access like
the primary.
Prisme.ai extension. When omitted, prompt caching is on for
conversations, i.e. requests that carry prompt_cache_key or
analytics_context.context_id, and off for one-shot calls, whose
cache write would never be read back. true turns it on even
without a key; false turns it off. Caching means cache markers
(Claude, Nova) and a cache key (OpenAI, Azure GPT, Mistral — on
Mistral the key is what enables caching). The automatic caching of
OpenAI / Azure GPT and Gemini cannot be switched off and stays
active.
Prisme.ai extension (standard OpenAI field). Cache routing key
sent to OpenAI, Azure GPT and Mistral. Defaults to
analytics_context.context_id. Ignored when prompt_cache is false.
Maximum string length: 256
Response
Successful completion. Content type depends on request.stream:
Anthropic thinking blocks produced with this assistant message
(thinking blocks carry thinking and signature,
redacted_thinking blocks carry data). Returned by the gateway
and meant to be sent back verbatim when the turn is replayed.
Gateway model id that produced reasoning_details. On replay the
blocks are forwarded only when this matches the model being
called; the tag itself is never sent to a provider.
stop, length, tool_calls, content_filter, or another
provider-specific value. Anthropic and Bedrock stop reasons
are normalised: unfinished answers (max_tokens,
model_context_window_exceeded, pause_turn) become
length, refusals (refusal, guardrail_intervened,
content_filtered) become content_filter, any other
present value becomes stop.
Total output tokens, reasoning included. Providers that report
thinking separately (Gemini's thoughtsTokenCount) have it folded
in by their adapter, so the figure is comparable across providers.
cost is computed from it.
Breakdown of completion_tokens. Present when the provider reports
one (OpenAI reasoning models, Gemini/Vertex). Absent otherwise:
Anthropic and Bedrock do reason but publish no separate count, so
the thinking stays inside completion_tokens.
Prisme.ai extension. Estimated USD cost computed from the
model document's pricing. Prompt-cache tokens are priced at
pricing.cache_read_per_1m_tokens / pricing.cache_write_per_1m_tokens
(default: a provider ratio of the input price), the rest of the
prompt at input_per_1m_tokens, the completion at output_per_1m_tokens.
Prisme.ai extension. Carbon-footprint estimate produced by
_compute-carbon-footprint. details.region is the carbon
region used and details.region_source the rule that picked it:
model (the model's override), provider (the entry's
carbon_region), bedrock-profile:<prefix>, bedrock:<aws region>, vertex:<location> or default (world).
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Prisme.ai","colors":{"primary":"#255BE0","light":"#4480ED","dark":"#255BE0"},"logo":{"light":"https://mintcdn.com/prismeai/_sSeZNUvs7sBNa3K/logo/light.svg?fit=max\u0026auto=format\u0026n=_sSeZNUvs7sBNa3K\u0026q=85\u0026s=4361458c99ac06f7a551020a022b802c","dark":"https://mintcdn.com/prismeai/_sSeZNUvs7sBNa3K/logo/dark.svg?fit=max\u0026auto=format\u0026n=_sSeZNUvs7sBNa3K\u0026q=85\u0026s=3a821be1a9c43dfe88d750b42b0879ca"},"favicon":"https://mintcdn.com/prismeai/_sSeZNUvs7sBNa3K/favicon.svg?fit=max\u0026auto=format\u0026n=_sSeZNUvs7sBNa3K\u0026q=85\u0026s=e62b8218f2529b02ddcca7e240aeb121","api":{"params":{"expanded":"all"},"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","javascript","python"]}},"background":{"color":{"light":"#F2F3F5","dark":"#0A0A0F"}},"navbar":{"links":[{"href":"mailto:support@prisme.ai","label":"Support"}],"primary":{"type":"button","label":"Ask for a demo","href":"https://www.prisme.ai/request-demo"}},"footer":{"socials":{"github":"https://github.com/prismeai","linkedin":"https://linkedin.com/company/prismeai"}},"seo":{"metatags":{"keywords":"sovereign agentic platform, plateforme agentique souveraine, AI Information System, enterprise AI platform, AI agents, agent governance, traceable AI, cloud agnostic, LLM agnostic, agentic workflows","robots":"index, follow","og:site_name":"Prisme.ai Documentation"},"indexing":"navigable"},"fonts":{"family":"PP Telegraf","weight":400},"contextual":{"options":["download-spec"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://blog.prisme.ai"},{"anchor":"Legacy Documentation","icon":"clock-rotate-left","href":"https://prismeai-legacy.mintlify.app/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"prismeai","hasAudioNarration":false,"actualSubdomain":"prismeai","customDomains":["docs.prisme.ai"],"gitSource":{"type":"github","owner":"prismeai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea0e3469138fe59fdb5617","collectionId":"ca55ecac-f49b-4815-a1bb-cf01f05dc184","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea0e3469138fe59fdb5617"},"feedback":{"thumbs":true,"edits":false,"issues":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aec4c4d52e1c9f3bbf4c9e5","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"API Reference","count":381},{"language":"default","tag":"Platform API","count":179},{"language":"default","tag":"Products","count":113},{"language":"default","tag":"App Store","count":88},{"language":"default","tag":"Agent Creator API","count":80},{"language":"default","tag":"Prisme.ai Workspaces","count":55},{"language":"default","tag":"Organizations","count":48},{"language":"default","tag":"Knowledges API","count":39},{"language":"default","tag":"Connectors","count":37},{"language":"default","tag":"API Gateway","count":37}]},"assistantConfig":{"enableStarterQuestions":false,"deflection":{"enabled":true,"type":"email","email":"support@prisme.ai"}},"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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"@font-face{font-family:'PP Telegraf';src:url('https://uploads.prisme.ai/yj7mmn-/ffcs3WSD7NIciPjlrySpO.PPTelegraf-Regular.otf') format('opentype');font-weight:100 600;font-style:normal;font-display:swap}@font-face{font-family:'PP Telegraf';src:url('https://uploads.prisme.ai/yj7mmn-/lpdrPfRwHqg0SiRWe_hec.PPTelegraf-Ultrabold.otf') format('opentype');font-weight:700 900;font-style:normal;font-display:swap}:root{--prisme-primary: #255BE0;--prisme-bg: #F2F3F5;--prisme-fg: #0A0A0F;--prisme-card: #FFFFFF;--prisme-border: #E3E6EC;--prisme-muted: #6B7080;--prisme-secondary: #E3E5EB;--prisme-accent-warm: #F5A623;--prisme-radius: 0.5rem;--prisme-tabs-sticky-top: 4rem}@media (min-width: 1024px){:root{--prisme-tabs-sticky-top: 7rem}}[data-theme=\"dark\"],.dark{--prisme-bg: #0A0A0F;--prisme-fg: #FAFAFA;--prisme-card: #0A0A0F;--prisme-border: #1F2028;--prisme-muted: #9CA0AE;--prisme-secondary: #1F2028}body{font-family:'PP Telegraf', 'Inter', system-ui, -apple-system, sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-weight:500}#navbar{border-bottom:1px solid var(--prisme-border)}#sidebar{border-right:1px solid var(--prisme-border)}callout{border-radius:var(--prisme-radius);border:1px solid var(--prisme-border)}[data-callout-type=\"warning\"] [data-component-part=\"callout-content\"],[data-callout-type=\"warning\"] [data-component-part=\"callout-content\"] strong{color:var(--prisme-fg)!important}code-block{border-radius:var(--prisme-radius)}#footer{border-top:1px solid var(--prisme-border)}[data-component-part=\"tabs-list\"]{position:sticky;top:var(--prisme-tabs-sticky-top);z-index:20;margin-bottom:0;padding-top:0.5rem;background:var(--prisme-bg);border-bottom-width:2px;border-bottom-color:var(--prisme-border);-webkit-backdrop-filter:saturate(180%) blur(6px);backdrop-filter:saturate(180%) blur(6px)}[data-component-part=\"tab-button\"]{color:var(--prisme-muted);font-weight:500;transition:color 0.15s ease, box-shadow 0.15s ease}[data-component-part=\"tab-button\"]:hover{color:var(--prisme-fg)}[data-component-part=\"tab-button\"][data-active=\"true\"]{color:var(--prisme-primary);font-weight:700;box-shadow:inset 0 -3px 0 0 var(--prisme-primary)}[data-component-part=\"tab-content\"]{border:1px solid var(--prisme-border);border-top:none;border-radius:0 0 var(--prisme-radius) var(--prisme-radius);padding:1.25rem 1.5rem;margin-bottom:2rem;background:var(--prisme-card)}[data-theme=\"dark\"] [data-component-part=\"tab-content\"],.dark [data-component-part=\"tab-content\"]{background:rgba(255, 255, 255, 0.02)}"},{"filePath":"tutorials/player.css","content":".pv-host{display:block;width:100%;aspect-ratio:16 / 9;margin:1.5rem 0}.pv.video-js{--pv-primary: #205BE1;--pv-ink: #151B24;--pv-muted: #69707F;--pv-border: #E4E7ED;--pv-surface: #F8FAFD;--pv-page: #FFFFFF;--pv-cover: #1E50D2;--pv-cover-eyebrow: #9DB4EE;--pv-cover-sub: #C9D8F7;--pv-title-font: Arial;--pv-pill-bg: #FFFFFF;--pv-pill-text: var(--pv-primary);container-type:size;background:var(--pv-page);border-radius:14px;overflow:hidden;font-family:-apple-system, BlinkMacSystemFont, \"Segoe UI\", Arial, sans-serif;color:var(--pv-ink)}.pv.video-js.vjs-fullscreen,.pv.video-js.vjs-full-window{border-radius:0}.pv.video-js>*{--u: min(1cqw, calc(100cqh / 56.25));--ox: calc(50cqw - 50 * var(--u));--oy: calc(50cqh - 28.125 * var(--u))}.pv.video-js .vjs-tech{left:calc(var(--ox) + var(--fx) * var(--u));top:calc(var(--oy) + (var(--fy) + 2.4) * var(--u));width:calc(var(--sw) * var(--u));height:calc(var(--sh) * var(--u));object-fit:cover;background:#fff;border-radius:0 0 calc(1 * var(--u)) calc(1 * var(--u))}.pv.video-js .vjs-poster{display:none}.pv.video-js .pv-frame{position:absolute;left:calc(var(--ox) + var(--fx) * var(--u));top:calc(var(--oy) + var(--fy) * var(--u));width:calc(var(--sw) * var(--u));height:calc((var(--sh) + 2.4) * var(--u));border-radius:calc(1 * var(--u));box-shadow:0 calc(1.2 * var(--u)) calc(3 * var(--u)) rgba(21, 27, 36, .18), 0 0 0 1px var(--pv-border);pointer-events:none}.pv.video-js .pv-bar{height:calc(2.4 * var(--u));display:flex;align-items:center;gap:calc(.55 * var(--u));padding:0 calc(1 * var(--u));background:var(--pv-surface);border-bottom:1px solid var(--pv-border);border-radius:calc(1 * var(--u)) calc(1 * var(--u)) 0 0}.pv.video-js .pv-bar i{width:calc(.7 * var(--u));height:calc(.7 * var(--u));border-radius:50%;background:#FF5F57}.pv.video-js .pv-bar i:nth-child(2){background:#FEBC2E}.pv.video-js .pv-bar i:nth-child(3){background:#28C840}.pv.video-js .pv-bar span{flex:1;margin:0 calc(4 * var(--u));height:calc(1.5 * var(--u));border-radius:calc(.75 * var(--u));background:#fff;border:1px solid var(--pv-border);color:var(--pv-muted);font-size:calc(.8 * var(--u));display:grid;place-items:center;overflow:hidden;white-space:nowrap}.pv.video-js .pv-panel{position:absolute;left:var(--ox);top:var(--oy);width:calc(27 * var(--u));height:calc(56.25 * var(--u));padding:calc(3.2 * var(--u)) calc(2.4 * var(--u)) calc(5.2 * var(--u)) calc(3.2 * var(--u));box-sizing:border-box;display:flex;flex-direction:column;color:var(--pv-ink);pointer-events:none}.pv.video-js .pv-panel .pv-logo{width:calc(13 * var(--u));margin-bottom:calc(4 * var(--u))}.pv.video-js h1,.pv.video-js p,.pv.video-js ol,.pv.video-js li,.pv.video-js button,.pv.video-js span{margin:0;padding:0;letter-spacing:normal;text-transform:none;font-family:inherit}.pv.video-js img{margin:0;border:0;box-shadow:none;max-width:none}.pv.video-js .pv-eyebrow{color:var(--pv-primary);font:700 calc(.95 * var(--u)) Arial;letter-spacing:.08em;text-transform:uppercase;margin-bottom:calc(.8 * var(--u))}.pv.video-js .pv-panel h1{font:700 calc(2.6 * var(--u)) / 1.12 var(--pv-title-font), Arial;margin:0 0 calc(.9 * var(--u));color:var(--pv-ink)}.pv.video-js .pv-panel p{color:var(--pv-muted);font-size:calc(1.25 * var(--u));line-height:1.4;margin:0 0 calc(2 * var(--u))}.pv.video-js .pv-toc{list-style:none;padding:0;margin:0;border-top:1px solid var(--pv-border);pointer-events:auto}.pv.video-js .pv-toc li{border-bottom:1px solid var(--pv-border);list-style:none}.pv.video-js .pv-toc li::before,.pv.video-js .pv-toc li::marker{content:none}.pv.video-js .pv-toc button{all:unset;box-sizing:border-box;width:100%;display:flex;gap:calc(.9 * var(--u));align-items:center;padding:calc(.7 * var(--u)) calc(.2 * var(--u));cursor:pointer;color:var(--pv-muted);font:calc(1.1 * var(--u)) / 1.3 inherit}.pv.video-js .pv-toc button:focus-visible{outline:2px solid var(--pv-primary);outline-offset:-2px}.pv.video-js .pv-toc .n{width:calc(1.9 * var(--u));height:calc(1.9 * var(--u));border-radius:50%;background:var(--pv-border);display:grid;place-items:center;font:700 calc(.85 * var(--u)) var(--pv-title-font), Arial;flex:none}.pv.video-js .pv-toc li.on button{color:var(--pv-ink);font-weight:600}.pv.video-js .pv-toc li.on .n{background:var(--pv-primary);color:#fff}.pv.video-js .pv-toc button:hover{color:var(--pv-ink)}.pv.video-js .pv-foot{margin-top:auto;color:var(--pv-muted);font-size:calc(.85 * var(--u))}.pv.video-js .pv-cover{position:absolute;inset:0;background:var(--pv-cover);color:#fff;display:none;z-index:2;cursor:pointer}.pv.video-js:not(.vjs-has-started) .pv-cover{display:block}.pv.video-js .pv-cover>div{position:absolute;left:calc(var(--ox) + 6 * var(--u));top:calc(var(--oy) + 5 * var(--u));width:calc(38 * var(--u))}.pv.video-js .pv-cover .pv-mark{position:absolute;left:calc(var(--ox) + 55 * var(--u));top:calc(var(--oy) + 4 * var(--u));width:calc(48 * var(--u))}.pv.video-js .pv-cover .pv-logo{width:calc(14 * var(--u));margin-bottom:calc(12 * var(--u))}.pv.video-js .pv-cover .pv-eyebrow{color:var(--pv-cover-eyebrow)}.pv.video-js .pv-cover h1{font:700 calc(4.6 * var(--u)) / 1.08 var(--pv-title-font), Arial;margin:0 0 calc(1.4 * var(--u));color:#fff}.pv.video-js .pv-cover p{color:var(--pv-cover-sub);font-size:calc(1.8 * var(--u));margin:0 0 calc(2.6 * var(--u))}.pv.video-js .pv-cover b{display:inline-block;background:var(--pv-pill-bg);color:var(--pv-pill-text);border-radius:calc(.7 * var(--u));padding:calc(.8 * var(--u)) calc(1.8 * var(--u));font:700 calc(1.3 * var(--u)) Arial}.pv.video-js .pv-tools{position:absolute;right:calc(100cqw - var(--ox) - 96.5 * var(--u));top:calc(var(--oy) + .9 * var(--u));display:flex;gap:calc(.3 * var(--u));background:var(--pv-surface);border:1px solid var(--pv-border);border-radius:calc(.8 * var(--u));padding:calc(.25 * var(--u));z-index:4}.pv.video-js .pv-tools button{border:0;background:none;padding:calc(.35 * var(--u)) calc(.9 * var(--u));border-radius:calc(.55 * var(--u));font:600 calc(.95 * var(--u)) Arial;color:var(--pv-muted);cursor:pointer}.pv.video-js .pv-tools button[aria-pressed=true]{background:var(--pv-primary);color:#fff}.pv.video-js .pv-tools button:focus-visible{outline:2px solid var(--pv-primary);outline-offset:1px}.pv.video-js .pv-ccwrap{position:relative;display:flex}.pv.video-js .pv-ccmenu{position:absolute;right:0;top:calc(100% + .5 * var(--u));margin:0;padding:calc(.35 * var(--u));list-style:none;background:#fff;border:1px solid var(--pv-border);border-radius:calc(.8 * var(--u));min-width:calc(13 * var(--u));box-shadow:0 calc(1 * var(--u)) calc(2.5 * var(--u)) rgba(21, 27, 36, .16)}.pv.video-js .pv-ccmenu li{padding:calc(.55 * var(--u)) calc(.9 * var(--u));border-radius:calc(.5 * var(--u));font:500 calc(.95 * var(--u)) Arial;color:var(--pv-ink);cursor:pointer;white-space:nowrap;display:flex;justify-content:space-between;gap:calc(1 * var(--u))}.pv.video-js .pv-ccmenu li:hover,.pv.video-js .pv-ccmenu li:focus{background:var(--pv-surface);outline:none}.pv.video-js .pv-ccmenu li[aria-checked=true]{color:var(--pv-primary);font-weight:700}.pv.video-js .pv-ccmenu li[aria-checked=true]::after{content:\"✓\"}.pv.video-js .pv-ccmenu li.sep{height:1px;padding:0;margin:calc(.3 * var(--u)) 0;background:var(--pv-border);cursor:default}.pv.video-js .pv-subs{position:absolute;left:var(--ox);width:calc(100 * var(--u));z-index:1;pointer-events:none;text-align:center;bottom:calc(100cqh - var(--oy) - 51.8 * var(--u));padding:0 calc(6 * var(--u));box-sizing:border-box;transition:bottom .25s}.pv.video-js.vjs-user-inactive.vjs-playing .pv-subs{bottom:calc(100cqh - var(--oy) - 54.4 * var(--u))}.pv.video-js .pv-subs span:not(:empty){display:inline-block;background:rgba(21, 27, 36, .84);color:#fff;border-radius:calc(.5 * var(--u));padding:calc(.35 * var(--u)) calc(1 * var(--u));font:500 calc(1.55 * var(--u)) / 1.35 Arial}.pv.video-js .pv-subs[hidden]{display:none}.pv.video-js .vjs-text-track-display{display:none}.pv.video-js .vjs-control-bar{background:linear-gradient(transparent, rgba(14, 17, 22, .82));height:max(34px, calc(3.6 * var(--u)));font-size:max(10px, calc(1.05 * var(--u)));z-index:3}.pv.video-js .vjs-big-play-button{left:50%;top:50%;transform:translate(-50%, -50%);margin:0;z-index:3;width:calc(7 * var(--u));height:calc(4.6 * var(--u));line-height:calc(4.6 * var(--u));font-size:calc(3 * var(--u));border-radius:calc(.8 * var(--u));background:var(--pv-primary);border:0;opacity:.94}.pv.video-js .vjs-big-play-button .vjs-icon-placeholder:before{line-height:calc(4.6 * var(--u))}.pv.video-js:hover .vjs-big-play-button{opacity:1}.pv.video-js .vjs-big-play-button,.pv.video-js .vjs-big-play-button .vjs-icon-placeholder{color:#fff}.pv.video-js:not(.vjs-has-started) .vjs-big-play-button{background:#fff;opacity:1;box-shadow:0 calc(.8 * var(--u)) calc(2 * var(--u)) rgba(0, 0, 0, .18)}.pv.video-js:not(.vjs-has-started) .vjs-big-play-button .vjs-icon-placeholder{color:var(--pv-primary)}.pv.video-js.vjs-has-started.vjs-paused .vjs-big-play-button{display:block}.pv.video-js.vjs-playing .vjs-big-play-button,.pv.video-js.vjs-seeking .vjs-big-play-button{display:none}"}],"page":{"pagePath":"llm-gateway/completions/create-a-chat-completion","slug":"/llm-gateway/completions/create-a-chat-completion","pageMetadata":{"title":"Create a chat completion","description":"OpenAI-compatible chat completions. Routes the request through the\ngateway's provider layer (OpenAI, Azure OpenAI, Anthropic, Vertex,\nBedrock, OpenAI-compatible) based on the resolved model spec.\n\n**Streaming.** When `stream: true`, the response is a `text/event-stream`\nof OpenAI-compatible delta chunks (`ChatCompletionChunk`) followed by a\nliteral `data: [DONE]` payload, then one final `chat.completion` frame\n(same shape as `ChatCompletionResponse`) carrying the assembled message,\n`finish_reason` and `usage`. Provider-native stream shapes\n(Anthropic, Bedrock, Vertex) are normalised to OpenAI deltas before\nbeing forwarded. Provider errors mid-stream are emitted as a synthetic\nchunk carrying an `error` object and a `content` fallback message,\nfollowed by `[DONE]`.\n\n**Failover.** When the requested model was attempted and failed, and a\nfallback answered instead (governance failover mapping merged with\n`fallback_models`), the switch is reported as\n`failover: { from_model, to_model }` on the response body, or on the\nfirst forwarded chunk when streaming.\n\n**Thinking blocks.** Anthropic thinking blocks are never streamed. They\nare returned on the assistant message as `reasoning_details`, tagged\nwith `reasoning_model` (the model that answered). Send both back\nverbatim when replaying the turn: the gateway forwards the blocks only\nto that same model, drops them for any other, and never sends the\n`reasoning_model` tag to a provider.\n\nWhen `stream: false` (default), the response is a single JSON\n`ChatCompletionResponse`. The non-streaming response is enriched with\n`usage.cost`, `usage.duration_ms`, and `usage.carbon` (Prisme.ai\nextensions over the standard OpenAI shape).\n\n**Prisme.ai extensions** in the request body:\n- `task_id` - opaque correlation identifier for A2A flows.\n- `analytics_context` - caller-supplied context (`orgSlug`, `agent_id`,\n `user_id`, `context_id`, `agent_allowed_models`, `call_type`,\n `message_turn`) used to enrich `analytics.llm.completion` events.\n- `fallback_models` - ordered models tried when the requested model\n fails, merged with the governance failover mapping; each one is\n checked against the caller's access like the primary.\n\n**Rate limiting.** 100 requests per 60 seconds per consumer\n(`auth.user_id` or `session.id`).\n\n**Governance.** Calls may be rejected with `403 MODEL_NOT_ALLOWED` or\n`429` quota errors based on the caller's organization governance\n(resolved via `ai-governance-v2`), or with `403 HEADER_POLICY_VIOLATION`\nwhen a required upstream identity header would reach the model provider\nempty (see `header_policy`).\n","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml post /v1/chat/completions","href":"/llm-gateway/completions/create-a-chat-completion","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"OpenAI-compatible chat completions. Routes the request through the\\ngateway’s provider layer (OpenAI, Azure OpenAI, Anthropic, Vertex,\\nBedrock, OpenAI-compatible) based on the resolved model spec.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Streaming.\"\n }), \" When \", _jsx(_components.code, {\n children: \"stream: true\"\n }), \", the response is a \", _jsx(_components.code, {\n children: \"text/event-stream\"\n }), \"\\nof OpenAI-compatible delta chunks (\", _jsx(_components.code, {\n children: \"ChatCompletionChunk\"\n }), \") followed by a\\nliteral \", _jsx(_components.code, {\n children: \"data: [DONE]\"\n }), \" payload, then one final \", _jsx(_components.code, {\n children: \"chat.completion\"\n }), \" frame\\n(same shape as \", _jsx(_components.code, {\n children: \"ChatCompletionResponse\"\n }), \") carrying the assembled message,\\n\", _jsx(_components.code, {\n children: \"finish_reason\"\n }), \" and \", _jsx(_components.code, {\n children: \"usage\"\n }), \". Provider-native stream shapes\\n(Anthropic, Bedrock, Vertex) are normalised to OpenAI deltas before\\nbeing forwarded. Provider errors mid-stream are emitted as a synthetic\\nchunk carrying an \", _jsx(_components.code, {\n children: \"error\"\n }), \" object and a \", _jsx(_components.code, {\n children: \"content\"\n }), \" fallback message,\\nfollowed by \", _jsx(_components.code, {\n children: \"[DONE]\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Failover.\"\n }), \" When the requested model was attempted and failed, and a\\nfallback answered instead (governance failover mapping merged with\\n\", _jsx(_components.code, {\n children: \"fallback_models\"\n }), \"), the switch is reported as\\n\", _jsx(_components.code, {\n children: \"failover: { from_model, to_model }\"\n }), \" on the response body, or on the\\nfirst forwarded chunk when streaming.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Thinking blocks.\"\n }), \" Anthropic thinking blocks are never streamed. They\\nare returned on the assistant message as \", _jsx(_components.code, {\n children: \"reasoning_details\"\n }), \", tagged\\nwith \", _jsx(_components.code, {\n children: \"reasoning_model\"\n }), \" (the model that answered). Send both back\\nverbatim when replaying the turn: the gateway forwards the blocks only\\nto that same model, drops them for any other, and never sends the\\n\", _jsx(_components.code, {\n children: \"reasoning_model\"\n }), \" tag to a provider.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"When \", _jsx(_components.code, {\n children: \"stream: false\"\n }), \" (default), the response is a single JSON\\n\", _jsx(_components.code, {\n children: \"ChatCompletionResponse\"\n }), \". The non-streaming response is enriched with\\n\", _jsx(_components.code, {\n children: \"usage.cost\"\n }), \", \", _jsx(_components.code, {\n children: \"usage.duration_ms\"\n }), \", and \", _jsx(_components.code, {\n children: \"usage.carbon\"\n }), \" (Prisme.ai\\nextensions over the standard OpenAI shape).\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Prisme.ai extensions\"\n }), \" in the request body:\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"task_id\"\n }), \" - opaque correlation identifier for A2A flows.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"analytics_context\"\n }), \" - caller-supplied context (\", _jsx(_components.code, {\n children: \"orgSlug\"\n }), \", \", _jsx(_components.code, {\n children: \"agent_id\"\n }), \",\\n\", _jsx(_components.code, {\n children: \"user_id\"\n }), \", \", _jsx(_components.code, {\n children: \"context_id\"\n }), \", \", _jsx(_components.code, {\n children: \"agent_allowed_models\"\n }), \", \", _jsx(_components.code, {\n children: \"call_type\"\n }), \",\\n\", _jsx(_components.code, {\n children: \"message_turn\"\n }), \") used to enrich \", _jsx(_components.code, {\n children: \"analytics.llm.completion\"\n }), \" events.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"fallback_models\"\n }), \" - ordered models tried when the requested model\\nfails, merged with the governance failover mapping; each one is\\nchecked against the caller’s access like the primary.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Rate limiting.\"\n }), \" 100 requests per 60 seconds per consumer\\n(\", _jsx(_components.code, {\n children: \"auth.user_id\"\n }), \" or \", _jsx(_components.code, {\n children: \"session.id\"\n }), \").\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Governance.\"\n }), \" Calls may be rejected with \", _jsx(_components.code, {\n children: \"403 MODEL_NOT_ALLOWED\"\n }), \" or\\n\", _jsx(_components.code, {\n children: \"429\"\n }), \" quota errors based on the caller’s organization governance\\n(resolved via \", _jsx(_components.code, {\n children: \"ai-governance-v2\"\n }), \"), or with \", _jsx(_components.code, {\n children: \"403 HEADER_POLICY_VIOLATION\"\n }), \"\\nwhen a required upstream identity header would reach the model provider\\nempty (see \", _jsx(_components.code, {\n children: \"header_policy\"\n }), \").\"]\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":"Create a chat completion","description":"OpenAI-compatible chat completions. Routes the request through the\ngateway's provider layer (OpenAI, Azure OpenAI, Anthropic, Vertex,\nBedrock, OpenAI-compatible) based on the resolved model spec.\n\n**Streaming.** When `stream: true`, the response is a `text/event-stream`\nof OpenAI-compatible delta chunks (`ChatCompletionChunk`) followed by a\nliteral `data: [DONE]` payload, then one final `chat.completion` frame\n(same shape as `ChatCompletionResponse`) carrying the assembled message,\n`finish_reason` and `usage`. Provider-native stream shapes\n(Anthropic, Bedrock, Vertex) are normalised to OpenAI deltas before\nbeing forwarded. Provider errors mid-stream are emitted as a synthetic\nchunk carrying an `error` object and a `content` fallback message,\nfollowed by `[DONE]`.\n\n**Failover.** When the requested model was attempted and failed, and a\nfallback answered instead (governance failover mapping merged with\n`fallback_models`), the switch is reported as\n`failover: { from_model, to_model }` on the response body, or on the\nfirst forwarded chunk when streaming.\n\n**Thinking blocks.** Anthropic thinking blocks are never streamed. They\nare returned on the assistant message as `reasoning_details`, tagged\nwith `reasoning_model` (the model that answered). Send both back\nverbatim when replaying the turn: the gateway forwards the blocks only\nto that same model, drops them for any other, and never sends the\n`reasoning_model` tag to a provider.\n\nWhen `stream: false` (default), the response is a single JSON\n`ChatCompletionResponse`. The non-streaming response is enriched with\n`usage.cost`, `usage.duration_ms`, and `usage.carbon` (Prisme.ai\nextensions over the standard OpenAI shape).\n\n**Prisme.ai extensions** in the request body:\n- `task_id` - opaque correlation identifier for A2A flows.\n- `analytics_context` - caller-supplied context (`orgSlug`, `agent_id`,\n `user_id`, `context_id`, `agent_allowed_models`, `call_type`,\n `message_turn`) used to enrich `analytics.llm.completion` events.\n- `fallback_models` - ordered models tried when the requested model\n fails, merged with the governance failover mapping; each one is\n checked against the caller's access like the primary.\n\n**Rate limiting.** 100 requests per 60 seconds per consumer\n(`auth.user_id` or `session.id`).\n\n**Governance.** Calls may be rejected with `403 MODEL_NOT_ALLOWED` or\n`429` quota errors based on the caller's organization governance\n(resolved via `ai-governance-v2`), or with `403 HEADER_POLICY_VIOLATION`\nwhen a required upstream identity header would reach the model provider\nempty (see `header_policy`).\n","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml post /v1/chat/completions","href":"/llm-gateway/completions/create-a-chat-completion","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/prismeai/7f6a1ef93dff131f/tutorials/player.js"],"openApiReferenceData":{"operation":{"tags":["Completions"],"operationId":"createChatCompletion","summary":"Create a chat completion","description":"OpenAI-compatible chat completions. Routes the request through the\ngateway's provider layer (OpenAI, Azure OpenAI, Anthropic, Vertex,\nBedrock, OpenAI-compatible) based on the resolved model spec.\n\n**Streaming.** When `stream: true`, the response is a `text/event-stream`\nof OpenAI-compatible delta chunks (`ChatCompletionChunk`) followed by a\nliteral `data: [DONE]` payload, then one final `chat.completion` frame\n(same shape as `ChatCompletionResponse`) carrying the assembled message,\n`finish_reason` and `usage`. Provider-native stream shapes\n(Anthropic, Bedrock, Vertex) are normalised to OpenAI deltas before\nbeing forwarded. Provider errors mid-stream are emitted as a synthetic\nchunk carrying an `error` object and a `content` fallback message,\nfollowed by `[DONE]`.\n\n**Failover.** When the requested model was attempted and failed, and a\nfallback answered instead (governance failover mapping merged with\n`fallback_models`), the switch is reported as\n`failover: { from_model, to_model }` on the response body, or on the\nfirst forwarded chunk when streaming.\n\n**Thinking blocks.** Anthropic thinking blocks are never streamed. They\nare returned on the assistant message as `reasoning_details`, tagged\nwith `reasoning_model` (the model that answered). Send both back\nverbatim when replaying the turn: the gateway forwards the blocks only\nto that same model, drops them for any other, and never sends the\n`reasoning_model` tag to a provider.\n\nWhen `stream: false` (default), the response is a single JSON\n`ChatCompletionResponse`. The non-streaming response is enriched with\n`usage.cost`, `usage.duration_ms`, and `usage.carbon` (Prisme.ai\nextensions over the standard OpenAI shape).\n\n**Prisme.ai extensions** in the request body:\n- `task_id` - opaque correlation identifier for A2A flows.\n- `analytics_context` - caller-supplied context (`orgSlug`, `agent_id`,\n `user_id`, `context_id`, `agent_allowed_models`, `call_type`,\n `message_turn`) used to enrich `analytics.llm.completion` events.\n- `fallback_models` - ordered models tried when the requested model\n fails, merged with the governance failover mapping; each one is\n checked against the caller's access like the primary.\n\n**Rate limiting.** 100 requests per 60 seconds per consumer\n(`auth.user_id` or `session.id`).\n\n**Governance.** Calls may be rejected with `403 MODEL_NOT_ALLOWED` or\n`429` quota errors based on the caller's organization governance\n(resolved via `ai-governance-v2`), or with `403 HEADER_POLICY_VIOLATION`\nwhen a required upstream identity header would reach the model provider\nempty (see `header_policy`).\n","requestBody":"41342949-e46e-48b8-9127-7b796be89143","responses":{"200":"f7d25bce-144a-48fd-951a-0ba3c427afdc","400":"f6b0bb29-1fda-4648-9868-65ce6247a6e3","401":"048eff7d-ded9-4c1b-b1d9-6598fb02b025","403":"07b87578-33f8-4af4-b30e-f6ed52973f7d","429":"925fbe4c-536b-4322-8a67-394ecc4c4b18"},"method":"post","type":"path","servers":["27d0d9ec-72ac-4d5c-a6bc-365d57e83b24"],"security":["4a6ba2fd-4805-41ec-a878-64a56c471822","e18d75f5-1f32-4d98-b0bb-7a1c7b6c1b45"],"path":"/v1/chat/completions","baseUrlOptions":["https://{host}/v2/workspaces/slug:llm-gateway/webhooks"],"title":"Create a chat completion","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages"],"description":"OpenAI-compatible chat completion request. Only the fields actually\naccepted by the gateway are documented here.\n","properties":{"messages":{"type":"array","description":"Conversation history (system + user/assistant/tool turns).","items":{"type":"object","required":["role"],"description":"A single message in a chat completion request or response.","properties":{"role":{"type":"string","enum":["system","user","assistant","tool"],"description":"Author role.","isRequired":true,"uniqueKey":"messages.items.[INDEX].role","typeLabel":"enum\u003cstring>"},"content":{"oneOf":[{"type":"string","description":"Message content. Either a plain string, or an array of typed parts\n(e.g. text + image) for multimodal inputs.\n","uniqueKey":"messages.items.[INDEX].content.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"object","additionalProperties":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX]","typeLabel":"object"},"description":"Message content. Either a plain string, or an array of typed parts\n(e.g. text + image) for multimodal inputs.\n","uniqueKey":"messages.items.[INDEX].content.oneOf.1","typeLabel":"object[]"}],"uniqueKey":"messages.items.[INDEX].content","typeLabel":"string | object[]"},"name":{"type":"string","description":"Optional author name (e.g. function name for tool messages).","uniqueKey":"messages.items.[INDEX].name","typeLabel":"string"},"tool_call_id":{"type":"string","description":"For `role: tool`, the id of the tool call this message responds to.","uniqueKey":"messages.items.[INDEX].tool_call_id","typeLabel":"string"},"tool_calls":{"type":"array","description":"Tool calls emitted by an assistant message.","items":{"type":"object","required":["id","type","function"],"properties":{"id":{"type":"string","description":"Provider-issued tool call identifier.","isRequired":true,"uniqueKey":"messages.items.[INDEX].tool_calls.items.[INDEX].id","typeLabel":"string"},"type":{"type":"string","enum":["function"],"description":"Tool kind. Currently always `function`.","isRequired":true,"uniqueKey":"messages.items.[INDEX].tool_calls.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"function":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Function name.","isRequired":true,"uniqueKey":"messages.items.[INDEX].tool_calls.items.[INDEX].function.name","typeLabel":"string"},"arguments":{"type":"string","description":"JSON-encoded arguments. Sent as a string (matches OpenAI's\nwire format).\n","uniqueKey":"messages.items.[INDEX].tool_calls.items.[INDEX].function.arguments","typeLabel":"string"}},"isRequired":true,"uniqueKey":"messages.items.[INDEX].tool_calls.items.[INDEX].function","typeLabel":"object"}},"uniqueKey":"messages.items.[INDEX].tool_calls.items.[INDEX]","typeLabel":"object"},"uniqueKey":"messages.items.[INDEX].tool_calls","typeLabel":"object[]"},"reasoning_details":{"type":"array","description":"Anthropic thinking blocks produced with this assistant message\n(`thinking` blocks carry `thinking` and `signature`,\n`redacted_thinking` blocks carry `data`). Returned by the gateway\nand meant to be sent back verbatim when the turn is replayed.\n","items":{"type":"object","additionalProperties":true,"properties":{"type":{"type":"string","enum":["thinking","redacted_thinking"],"uniqueKey":"messages.items.[INDEX].reasoning_details.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"thinking":{"type":"string","uniqueKey":"messages.items.[INDEX].reasoning_details.items.[INDEX].thinking","typeLabel":"string"},"signature":{"type":"string","uniqueKey":"messages.items.[INDEX].reasoning_details.items.[INDEX].signature","typeLabel":"string"},"data":{"type":"string","uniqueKey":"messages.items.[INDEX].reasoning_details.items.[INDEX].data","typeLabel":"string"}},"uniqueKey":"messages.items.[INDEX].reasoning_details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"messages.items.[INDEX].reasoning_details","typeLabel":"object[]"},"reasoning_model":{"type":"string","description":"Gateway model id that produced `reasoning_details`. On replay the\nblocks are forwarded only when this matches the model being\ncalled; the tag itself is never sent to a provider.\n","uniqueKey":"messages.items.[INDEX].reasoning_model","typeLabel":"string"}},"uniqueKey":"messages.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"messages","typeLabel":"object[]"},"model":{"type":"string","maxLength":256,"description":"Model id from the catalogue (e.g. `gpt-4o`,\n`eu.anthropic.claude-sonnet-4-20250514-v1:0`,\n`vertex-gemini-2.5-flash`). Defaults to the gateway's\n`defaults.completions` model when omitted.\n","uniqueKey":"model","typeLabel":"string"},"temperature":{"description":"Sampling temperature (provider-dependent range, typically 0 to 2).","uniqueKey":"temperature","typeLabel":"any"},"max_tokens":{"description":"Max tokens to generate.","uniqueKey":"max_tokens","typeLabel":"any"},"max_completion_tokens":{"description":"Max tokens to generate, OpenAI's newer name for `max_tokens`. Either one is accepted; the gateway forwards a single `max_tokens` (the lower value when both are sent), capped to the model's `limits.max_response_tokens`. It is sent back as `max_completion_tokens` where the model requires it, through the model's `rename_params` or the provider's `parameterAliases`. A provider entry that excludes `max_tokens` without such a rename sends no output limit.","uniqueKey":"max_completion_tokens","typeLabel":"any"},"top_p":{"description":"Nucleus sampling parameter.","uniqueKey":"top_p","typeLabel":"any"},"frequency_penalty":{"description":"OpenAI-style frequency penalty.","uniqueKey":"frequency_penalty","typeLabel":"any"},"presence_penalty":{"description":"OpenAI-style presence penalty.","uniqueKey":"presence_penalty","typeLabel":"any"},"stop":{"description":"One or more stop sequences (string or array of strings).","uniqueKey":"stop","typeLabel":"any"},"stream":{"type":"boolean","description":"When `true`, the response is a `text/event-stream` of\n`ChatCompletionChunk` deltas terminating with `data: [DONE]`.\n","uniqueKey":"stream","typeLabel":"boolean"},"tools":{"type":"array","description":"Tool/function definitions made available to the model. Forwarded to\nproviders that support tool calling.\n","items":{"type":"object","additionalProperties":true,"uniqueKey":"tools.items.[INDEX]","typeLabel":"object"},"uniqueKey":"tools","typeLabel":"object[]"},"tool_choice":{"description":"Tool selection hint: `\"auto\"`, `\"none\"`, `\"required\"`, or\n`{ type: \"function\", function: { name } }`.\n","uniqueKey":"tool_choice","typeLabel":"any"},"response_format":{"description":"OpenAI-style structured output hint\n(e.g. `{ \"type\": \"json_object\" }`).\n","type":"object","additionalProperties":true,"uniqueKey":"response_format","typeLabel":"object"},"seed":{"description":"Provider seed for reproducible sampling (where supported).","uniqueKey":"seed","typeLabel":"any"},"fallback_models":{"type":"array","maxItems":5,"items":{"type":"string","uniqueKey":"fallback_models.items.[INDEX]","typeLabel":"string"},"description":"**Prisme.ai extension.** Ordered fallback models tried when the\nrequested model fails (merged with the governance failover\nmapping). Each one is checked against the caller's access like\nthe primary.\n","uniqueKey":"fallback_models","typeLabel":"string[]"},"task_id":{"type":"string","maxLength":128,"description":"**Prisme.ai extension.** Opaque correlation id propagated to A2A\n(agent-to-agent) flows.\n","uniqueKey":"task_id","typeLabel":"string"},"analytics_context":{"type":"object","description":"**Prisme.ai extension.** Caller-supplied analytics context merged\ninto the `analytics.llm.completion` event.\n","additionalProperties":true,"properties":{"orgSlug":{"type":"string","uniqueKey":"analytics_context.orgSlug","typeLabel":"string"},"agent_id":{"type":"string","uniqueKey":"analytics_context.agent_id","typeLabel":"string"},"user_id":{"type":"string","uniqueKey":"analytics_context.user_id","typeLabel":"string"},"context_id":{"type":"string","uniqueKey":"analytics_context.context_id","typeLabel":"string"},"agent_allowed_models":{"type":"array","items":{"type":"string","uniqueKey":"analytics_context.agent_allowed_models.items.[INDEX]","typeLabel":"string"},"uniqueKey":"analytics_context.agent_allowed_models","typeLabel":"string[]"},"call_type":{"type":"string","uniqueKey":"analytics_context.call_type","typeLabel":"string"},"message_turn":{"type":"number","uniqueKey":"analytics_context.message_turn","typeLabel":"number"}},"uniqueKey":"analytics_context","typeLabel":"object"},"prompt_cache":{"type":"boolean","description":"**Prisme.ai extension.** When omitted, prompt caching is on for\nconversations, i.e. requests that carry `prompt_cache_key` or\n`analytics_context.context_id`, and off for one-shot calls, whose\ncache write would never be read back. `true` turns it on even\nwithout a key; `false` turns it off. Caching means cache markers\n(Claude, Nova) and a cache key (OpenAI, Azure GPT, Mistral — on\nMistral the key is what enables caching). The automatic caching of\nOpenAI / Azure GPT and Gemini cannot be switched off and stays\nactive.\n","uniqueKey":"prompt_cache","typeLabel":"boolean"},"prompt_cache_key":{"type":"string","maxLength":256,"description":"**Prisme.ai extension** (standard OpenAI field). Cache routing key\nsent to OpenAI, Azure GPT and Mistral. Defaults to\n`analytics_context.context_id`. Ignored when `prompt_cache` is false.\n","uniqueKey":"prompt_cache_key","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"messages":[{"content":"\u003cstring>","name":"\u003cstring>","tool_call_id":"\u003cstring>","tool_calls":[{"id":"\u003cstring>","type":"function","function":{"name":"\u003cstring>","arguments":"\u003cstring>"}}],"reasoning_details":[{"thinking":"\u003cstring>","signature":"\u003cstring>","data":"\u003cstring>"}],"reasoning_model":"\u003cstring>"}],"model":"\u003cstring>","temperature":"\u003cunknown>","max_tokens":"\u003cunknown>","max_completion_tokens":"\u003cunknown>","top_p":"\u003cunknown>","frequency_penalty":"\u003cunknown>","presence_penalty":"\u003cunknown>","stop":"\u003cunknown>","stream":true,"tools":[{}],"tool_choice":"\u003cunknown>","response_format":{},"seed":"\u003cunknown>","fallback_models":["\u003cstring>"],"task_id":"\u003cstring>","analytics_context":{"orgSlug":"\u003cstring>","agent_id":"\u003cstring>","user_id":"\u003cstring>","context_id":"\u003cstring>","agent_allowed_models":["\u003cstring>"],"call_type":"\u003cstring>","message_turn":123},"prompt_cache":true,"prompt_cache_key":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"f7d25bce-144a-48fd-951a-0ba3c427afdc":{"description":"Successful completion. Content type depends on `request.stream`:\n- `application/json`: non-streaming `ChatCompletionResponse`.\n- `text/event-stream`: SSE stream of `ChatCompletionChunk` payloads\n followed by `data: [DONE]` and a final `chat.completion` frame.\n","content":{"application/json":{"schema":{"type":"object","description":"Non-streaming chat completion response. Mirrors OpenAI's shape with\nPrisme.ai extensions on `usage` (`cost`, `duration_ms`, `carbon`).\n","required":["id","object","created","model","choices"],"properties":{"id":{"type":"string","description":"Generated id (`chatcmpl-\u003ccorrelationId>`).","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"object":{"type":"string","enum":["chat.completion"],"isRequired":true,"uniqueKey":"object","typeLabel":"enum\u003cstring>"},"created":{"type":"integer","description":"Unix timestamp (seconds).","isRequired":true,"uniqueKey":"created","typeLabel":"integer"},"model":{"type":"string","description":"Resolved model id used to serve the request.","isRequired":true,"uniqueKey":"model","typeLabel":"string"},"choices":{"type":"array","items":{"type":"object","required":["index","message"],"properties":{"index":{"type":"integer","isRequired":true,"uniqueKey":"choices.items.[INDEX].index","typeLabel":"integer"},"message":{"type":"object","required":["role"],"description":"A single message in a chat completion request or response.","properties":{"role":{"type":"string","enum":["system","user","assistant","tool"],"description":"Author role.","isRequired":true,"uniqueKey":"choices.items.[INDEX].message.role","typeLabel":"enum\u003cstring>"},"content":{"oneOf":[{"type":"string","description":"Message content. Either a plain string, or an array of typed parts\n(e.g. text + image) for multimodal inputs.\n","uniqueKey":"choices.items.[INDEX].message.content.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"object","additionalProperties":true,"uniqueKey":"choices.items.[INDEX].message.content.oneOf.1.items.[INDEX]","typeLabel":"object"},"description":"Message content. Either a plain string, or an array of typed parts\n(e.g. text + image) for multimodal inputs.\n","uniqueKey":"choices.items.[INDEX].message.content.oneOf.1","typeLabel":"object[]"}],"uniqueKey":"choices.items.[INDEX].message.content","typeLabel":"string | object[]"},"name":{"type":"string","description":"Optional author name (e.g. function name for tool messages).","uniqueKey":"choices.items.[INDEX].message.name","typeLabel":"string"},"tool_call_id":{"type":"string","description":"For `role: tool`, the id of the tool call this message responds to.","uniqueKey":"choices.items.[INDEX].message.tool_call_id","typeLabel":"string"},"tool_calls":{"type":"array","description":"Tool calls emitted by an assistant message.","items":{"type":"object","required":["id","type","function"],"properties":{"id":{"type":"string","description":"Provider-issued tool call identifier.","isRequired":true,"uniqueKey":"choices.items.[INDEX].message.tool_calls.items.[INDEX].id","typeLabel":"string"},"type":{"type":"string","enum":["function"],"description":"Tool kind. Currently always `function`.","isRequired":true,"uniqueKey":"choices.items.[INDEX].message.tool_calls.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"function":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Function name.","isRequired":true,"uniqueKey":"choices.items.[INDEX].message.tool_calls.items.[INDEX].function.name","typeLabel":"string"},"arguments":{"type":"string","description":"JSON-encoded arguments. Sent as a string (matches OpenAI's\nwire format).\n","uniqueKey":"choices.items.[INDEX].message.tool_calls.items.[INDEX].function.arguments","typeLabel":"string"}},"isRequired":true,"uniqueKey":"choices.items.[INDEX].message.tool_calls.items.[INDEX].function","typeLabel":"object"}},"uniqueKey":"choices.items.[INDEX].message.tool_calls.items.[INDEX]","typeLabel":"object"},"uniqueKey":"choices.items.[INDEX].message.tool_calls","typeLabel":"object[]"},"reasoning_details":{"type":"array","description":"Anthropic thinking blocks produced with this assistant message\n(`thinking` blocks carry `thinking` and `signature`,\n`redacted_thinking` blocks carry `data`). Returned by the gateway\nand meant to be sent back verbatim when the turn is replayed.\n","items":{"type":"object","additionalProperties":true,"properties":{"type":{"type":"string","enum":["thinking","redacted_thinking"],"uniqueKey":"choices.items.[INDEX].message.reasoning_details.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"thinking":{"type":"string","uniqueKey":"choices.items.[INDEX].message.reasoning_details.items.[INDEX].thinking","typeLabel":"string"},"signature":{"type":"string","uniqueKey":"choices.items.[INDEX].message.reasoning_details.items.[INDEX].signature","typeLabel":"string"},"data":{"type":"string","uniqueKey":"choices.items.[INDEX].message.reasoning_details.items.[INDEX].data","typeLabel":"string"}},"uniqueKey":"choices.items.[INDEX].message.reasoning_details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"choices.items.[INDEX].message.reasoning_details","typeLabel":"object[]"},"reasoning_model":{"type":"string","description":"Gateway model id that produced `reasoning_details`. On replay the\nblocks are forwarded only when this matches the model being\ncalled; the tag itself is never sent to a provider.\n","uniqueKey":"choices.items.[INDEX].message.reasoning_model","typeLabel":"string"}},"isRequired":true,"uniqueKey":"choices.items.[INDEX].message","typeLabel":"object"},"finish_reason":{"type":"string","description":"`stop`, `length`, `tool_calls`, `content_filter`, or another\nprovider-specific value. Anthropic and Bedrock stop reasons\nare normalised: unfinished answers (`max_tokens`,\n`model_context_window_exceeded`, `pause_turn`) become\n`length`, refusals (`refusal`, `guardrail_intervened`,\n`content_filtered`) become `content_filter`, any other\npresent value becomes `stop`.\n","uniqueKey":"choices.items.[INDEX].finish_reason","typeLabel":"string"}},"uniqueKey":"choices.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"choices","typeLabel":"object[]"},"usage":{"type":"object","description":"Token, cost, and carbon accounting.","properties":{"prompt_tokens":{"type":"integer","description":"Total input tokens, cached context included.","uniqueKey":"usage.prompt_tokens","typeLabel":"integer"},"completion_tokens":{"type":"integer","description":"Total output tokens, reasoning **included**. Providers that report\nthinking separately (Gemini's `thoughtsTokenCount`) have it folded\nin by their adapter, so the figure is comparable across providers.\n`cost` is computed from it.\n","uniqueKey":"usage.completion_tokens","typeLabel":"integer"},"completion_tokens_details":{"type":"object","description":"Breakdown of `completion_tokens`. Present when the provider reports\none (OpenAI reasoning models, Gemini/Vertex). Absent otherwise:\nAnthropic and Bedrock do reason but publish no separate count, so\nthe thinking stays inside `completion_tokens`.\n","properties":{"reasoning_tokens":{"type":"integer","uniqueKey":"usage.completion_tokens_details.reasoning_tokens","typeLabel":"integer"}},"uniqueKey":"usage.completion_tokens_details","typeLabel":"object"},"cache_read_input_tokens":{"type":"integer","description":"Cached input tokens re-read on this call (0 when caching is off).","uniqueKey":"usage.cache_read_input_tokens","typeLabel":"integer"},"cache_write_input_tokens":{"type":"integer","description":"Input tokens written to the provider cache (0 when caching is off or unbilled).","uniqueKey":"usage.cache_write_input_tokens","typeLabel":"integer"},"total_tokens":{"type":"integer","uniqueKey":"usage.total_tokens","typeLabel":"integer"},"cost":{"type":"number","format":"double","description":"**Prisme.ai extension.** Estimated USD cost computed from the\nmodel document's `pricing`. Prompt-cache tokens are priced at\n`pricing.cache_read_per_1m_tokens` / `pricing.cache_write_per_1m_tokens`\n(default: a provider ratio of the input price), the rest of the\nprompt at `input_per_1m_tokens`, the completion at `output_per_1m_tokens`.\n","uniqueKey":"usage.cost","typeLabel":"number\u003cdouble>"},"duration_ms":{"type":"integer","description":"**Prisme.ai extension.** Wall-clock duration of the call.","uniqueKey":"usage.duration_ms","typeLabel":"integer"},"carbon":{"type":"object","description":"**Prisme.ai extension.** Carbon-footprint estimate produced by\n`_compute-carbon-footprint`. `details.region` is the carbon\nregion used and `details.region_source` the rule that picked it:\n`model` (the model's override), `provider` (the entry's\n`carbon_region`), `bedrock-profile:\u003cprefix>`, `bedrock:\u003caws\nregion>`, `vertex:\u003clocation>` or `default` (world).\n","additionalProperties":true,"uniqueKey":"usage.carbon","typeLabel":"object"}},"uniqueKey":"usage","typeLabel":"object"},"failover":{"type":"object","description":"Reported when the requested model was attempted, failed, and a\nfallback answered instead. Absent when no switch happened.\n","properties":{"from_model":{"type":"string","description":"Model requested by the caller.","uniqueKey":"failover.from_model","typeLabel":"string"},"to_model":{"type":"string","description":"Model that actually answered.","uniqueKey":"failover.to_model","typeLabel":"string"}},"uniqueKey":"failover","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"\u003cstring>","object":"chat.completion","created":123,"model":"\u003cstring>","choices":[{"index":123,"message":{"role":"system","content":"\u003cstring>","name":"\u003cstring>","tool_call_id":"\u003cstring>","tool_calls":[{"id":"\u003cstring>","type":"function","function":{"name":"\u003cstring>","arguments":"\u003cstring>"}}],"reasoning_details":[{"type":"thinking","thinking":"\u003cstring>","signature":"\u003cstring>","data":"\u003cstring>"}],"reasoning_model":"\u003cstring>"},"finish_reason":"\u003cstring>"}],"usage":{"prompt_tokens":123,"completion_tokens":123,"completion_tokens_details":{"reasoning_tokens":123},"cache_read_input_tokens":123,"cache_write_input_tokens":123,"total_tokens":123,"cost":123,"duration_ms":123,"carbon":{}},"failover":{"from_model":"\u003cstring>","to_model":"\u003cstring>"}}}},"exampleType":"generated"},"text/event-stream":{"schema":{"type":"object","description":"Server-Sent Events stream. Each `data:` line carries a JSON\n`ChatCompletionChunk` (delta), then a literal `[DONE]` line,\nthen one final `chat.completion` frame shaped like\n`ChatCompletionResponse`. The schema below describes the\nper-chunk JSON payload.\n","properties":{"id":{"type":"string","uniqueKey":"id","typeLabel":"string"},"object":{"type":"string","uniqueKey":"object","typeLabel":"string"},"created":{"type":"integer","uniqueKey":"created","typeLabel":"integer"},"model":{"type":"string","uniqueKey":"model","typeLabel":"string"},"choices":{"type":"array","items":{"type":"object","required":["index"],"properties":{"index":{"type":"integer","isRequired":true,"uniqueKey":"choices.items.[INDEX].index","typeLabel":"integer"},"delta":{"type":"object","description":"Incremental message delta.","properties":{"role":{"type":"string","uniqueKey":"choices.items.[INDEX].delta.role","typeLabel":"string"},"content":{"type":"string","uniqueKey":"choices.items.[INDEX].delta.content","typeLabel":"string"},"tool_calls":{"type":"array","items":{"type":"object","additionalProperties":true,"uniqueKey":"choices.items.[INDEX].delta.tool_calls.items.[INDEX]","typeLabel":"object"},"uniqueKey":"choices.items.[INDEX].delta.tool_calls","typeLabel":"object[]"}},"uniqueKey":"choices.items.[INDEX].delta","typeLabel":"object"},"finish_reason":{"type":"string","uniqueKey":"choices.items.[INDEX].finish_reason","typeLabel":"string"}},"uniqueKey":"choices.items.[INDEX]","typeLabel":"object"},"uniqueKey":"choices","typeLabel":"object[]"},"failover":{"type":"object","description":"Present on the first forwarded chunk when the gateway switched model.","properties":{"from_model":{"type":"string","description":"Model requested by the caller.","uniqueKey":"failover.from_model","typeLabel":"string"},"to_model":{"type":"string","description":"Model that actually answered.","uniqueKey":"failover.to_model","typeLabel":"string"}},"uniqueKey":"failover","typeLabel":"object"},"error":{"type":"object","description":"Present on the synthetic chunk emitted when the provider fails\nmid-stream. `choices[0].delta.content` then carries the same\nmessage for consumers that only read deltas.\n","properties":{"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"provider":{"type":"string","uniqueKey":"error.provider","typeLabel":"string"},"model":{"type":"string","uniqueKey":"error.model","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"uniqueKey":"error","typeLabel":"object"},"usage":{"type":"object","description":"Present on the final chunk. Same fields as the non-streaming\n`usage` (`prompt_tokens`, `completion_tokens`, `total_tokens`,\n`completion_tokens_details.reasoning_tokens`,\n`cache_read_input_tokens`, `cache_write_input_tokens`).\n","additionalProperties":true,"uniqueKey":"usage","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"\u003cstring>","object":"\u003cstring>","created":123,"model":"\u003cstring>","choices":[{"index":123,"delta":{"role":"\u003cstring>","content":"\u003cstring>","tool_calls":[{}]},"finish_reason":"\u003cstring>"}],"failover":{"from_model":"\u003cstring>","to_model":"\u003cstring>"},"error":{"message":"\u003cstring>","code":"\u003cstring>","provider":"\u003cstring>","model":"\u003cstring>","details":{}},"usage":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"f6b0bb29-1fda-4648-9868-65ce6247a6e3":{"description":"Validation error (validateArguments rejected the body shape).","content":{"application/json":{"schema":{"type":"object","required":["error"],"description":"Standard error envelope. `error` carries either a stable PascalCase\nidentifier or a free-text label (legacy endpoints) - `code` is the\ncanonical machine-readable identifier going forward.\n","properties":{"error":{"type":"string","description":"Stable PascalCase identifier or short error label.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message.","uniqueKey":"message","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code. Observed values include\n`RATE_LIMITED`, `MODEL_NOT_ALLOWED`, `HEADER_POLICY_VIOLATION`,\n`MODEL_NOT_FOUND`,\n`MODEL_EXISTS`, `MISSING_MODEL_ID`, `MISSING_TYPE`, `INVALID_BODY`,\n`BULK_REPLACE_FAILED`,\n`INVALID_ITEMS`, `INVALID_DIMENSIONS`, `PAYLOAD_TOO_LARGE`,\n`METHOD_NOT_ALLOWED`, `PROVIDER_ERROR`, `PROVIDER_NO_RESPONSE`.\n","uniqueKey":"code","typeLabel":"string"},"details":{"description":"Optional structured context (e.g. list of invalid items).","additionalProperties":true,"type":"object","uniqueKey":"details","typeLabel":"object"},"status":{"type":"integer","description":"HTTP status mirror, when present.","uniqueKey":"status","typeLabel":"integer"},"retryAfter":{"type":"integer","description":"Seconds to wait before retrying (rate-limit responses).","uniqueKey":"retryAfter","typeLabel":"integer"},"provider":{"type":"string","description":"Upstream provider name (provider-error responses).","uniqueKey":"provider","typeLabel":"string"},"model":{"type":"string","description":"Model id involved in the error (provider-error responses).","uniqueKey":"model","typeLabel":"string"},"provider_error_type":{"type":"string","description":"Upstream provider's own error class name.","uniqueKey":"provider_error_type","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>","code":"\u003cstring>","details":{},"status":123,"retryAfter":123,"provider":"\u003cstring>","model":"\u003cstring>","provider_error_type":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"048eff7d-ded9-4c1b-b1d9-6598fb02b025":{"description":"Missing or invalid authentication.","content":{"application/json":{"schema":{"type":"object","required":["error"],"description":"Standard error envelope. `error` carries either a stable PascalCase\nidentifier or a free-text label (legacy endpoints) - `code` is the\ncanonical machine-readable identifier going forward.\n","properties":{"error":{"type":"string","description":"Stable PascalCase identifier or short error label.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message.","uniqueKey":"message","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code. Observed values include\n`RATE_LIMITED`, `MODEL_NOT_ALLOWED`, `HEADER_POLICY_VIOLATION`,\n`MODEL_NOT_FOUND`,\n`MODEL_EXISTS`, `MISSING_MODEL_ID`, `MISSING_TYPE`, `INVALID_BODY`,\n`BULK_REPLACE_FAILED`,\n`INVALID_ITEMS`, `INVALID_DIMENSIONS`, `PAYLOAD_TOO_LARGE`,\n`METHOD_NOT_ALLOWED`, `PROVIDER_ERROR`, `PROVIDER_NO_RESPONSE`.\n","uniqueKey":"code","typeLabel":"string"},"details":{"description":"Optional structured context (e.g. list of invalid items).","additionalProperties":true,"type":"object","uniqueKey":"details","typeLabel":"object"},"status":{"type":"integer","description":"HTTP status mirror, when present.","uniqueKey":"status","typeLabel":"integer"},"retryAfter":{"type":"integer","description":"Seconds to wait before retrying (rate-limit responses).","uniqueKey":"retryAfter","typeLabel":"integer"},"provider":{"type":"string","description":"Upstream provider name (provider-error responses).","uniqueKey":"provider","typeLabel":"string"},"model":{"type":"string","description":"Model id involved in the error (provider-error responses).","uniqueKey":"model","typeLabel":"string"},"provider_error_type":{"type":"string","description":"Upstream provider's own error class name.","uniqueKey":"provider_error_type","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>","code":"\u003cstring>","details":{},"status":123,"retryAfter":123,"provider":"\u003cstring>","model":"\u003cstring>","provider_error_type":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"07b87578-33f8-4af4-b30e-f6ed52973f7d":{"description":"Refused by a governance overlay. The machine-readable code is\ntypically `MODEL_NOT_ALLOWED`, or `HEADER_POLICY_VIOLATION` when a\nrequired upstream identity header would reach the provider empty\n(`details.missing` then lists the header names).\n","content":{"application/json":{"schema":{"type":"object","required":["error"],"description":"Standard error envelope. `error` carries either a stable PascalCase\nidentifier or a free-text label (legacy endpoints) - `code` is the\ncanonical machine-readable identifier going forward.\n","properties":{"error":{"type":"string","description":"Stable PascalCase identifier or short error label.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message.","uniqueKey":"message","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code. Observed values include\n`RATE_LIMITED`, `MODEL_NOT_ALLOWED`, `HEADER_POLICY_VIOLATION`,\n`MODEL_NOT_FOUND`,\n`MODEL_EXISTS`, `MISSING_MODEL_ID`, `MISSING_TYPE`, `INVALID_BODY`,\n`BULK_REPLACE_FAILED`,\n`INVALID_ITEMS`, `INVALID_DIMENSIONS`, `PAYLOAD_TOO_LARGE`,\n`METHOD_NOT_ALLOWED`, `PROVIDER_ERROR`, `PROVIDER_NO_RESPONSE`.\n","uniqueKey":"code","typeLabel":"string"},"details":{"description":"Optional structured context (e.g. list of invalid items).","additionalProperties":true,"type":"object","uniqueKey":"details","typeLabel":"object"},"status":{"type":"integer","description":"HTTP status mirror, when present.","uniqueKey":"status","typeLabel":"integer"},"retryAfter":{"type":"integer","description":"Seconds to wait before retrying (rate-limit responses).","uniqueKey":"retryAfter","typeLabel":"integer"},"provider":{"type":"string","description":"Upstream provider name (provider-error responses).","uniqueKey":"provider","typeLabel":"string"},"model":{"type":"string","description":"Model id involved in the error (provider-error responses).","uniqueKey":"model","typeLabel":"string"},"provider_error_type":{"type":"string","description":"Upstream provider's own error class name.","uniqueKey":"provider_error_type","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>","code":"\u003cstring>","details":{},"status":123,"retryAfter":123,"provider":"\u003cstring>","model":"\u003cstring>","provider_error_type":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"925fbe4c-536b-4322-8a67-394ecc4c4b18":{"description":"Rate limit exceeded (`code: RATE_LIMITED`, 100 req / 60 s per\nconsumer) or governance quota exceeded.\n","content":{"application/json":{"schema":{"type":"object","required":["error"],"description":"Standard error envelope. `error` carries either a stable PascalCase\nidentifier or a free-text label (legacy endpoints) - `code` is the\ncanonical machine-readable identifier going forward.\n","properties":{"error":{"type":"string","description":"Stable PascalCase identifier or short error label.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message.","uniqueKey":"message","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code. Observed values include\n`RATE_LIMITED`, `MODEL_NOT_ALLOWED`, `HEADER_POLICY_VIOLATION`,\n`MODEL_NOT_FOUND`,\n`MODEL_EXISTS`, `MISSING_MODEL_ID`, `MISSING_TYPE`, `INVALID_BODY`,\n`BULK_REPLACE_FAILED`,\n`INVALID_ITEMS`, `INVALID_DIMENSIONS`, `PAYLOAD_TOO_LARGE`,\n`METHOD_NOT_ALLOWED`, `PROVIDER_ERROR`, `PROVIDER_NO_RESPONSE`.\n","uniqueKey":"code","typeLabel":"string"},"details":{"description":"Optional structured context (e.g. list of invalid items).","additionalProperties":true,"type":"object","uniqueKey":"details","typeLabel":"object"},"status":{"type":"integer","description":"HTTP status mirror, when present.","uniqueKey":"status","typeLabel":"integer"},"retryAfter":{"type":"integer","description":"Seconds to wait before retrying (rate-limit responses).","uniqueKey":"retryAfter","typeLabel":"integer"},"provider":{"type":"string","description":"Upstream provider name (provider-error responses).","uniqueKey":"provider","typeLabel":"string"},"model":{"type":"string","description":"Model id involved in the error (provider-error responses).","uniqueKey":"model","typeLabel":"string"},"provider_error_type":{"type":"string","description":"Upstream provider's own error class name.","uniqueKey":"provider_error_type","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>","code":"\u003cstring>","details":{},"status":123,"retryAfter":123,"provider":"\u003cstring>","model":"\u003cstring>","provider_error_type":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"4a6ba2fd-4805-41ec-a878-64a56c471822":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"User-bound credential carrying an identity: either a session JWT\nor a user access token (`at:*`) generated from the user settings UI.\nSend as `Authorization: Bearer \u003ctoken>`.\nOrg API keys (`iak_*`) are **not** accepted here - they carry\nno user identity. Use the `x-prismeai-api-key` header instead\n(see `OrgApiKeyAuth`).\n","scopes":[],"schemeName":"BearerAuth"}},"e18d75f5-1f32-4d98-b0bb-7a1c7b6c1b45":{"OrgApiKeyAuth":{"type":"apiKey","in":"header","name":"x-prismeai-api-key","description":"Organization API key (`iak_{orgSlug}_{uuid}`). Unlike\n`Authorization: Bearer`, this credential is **not** tied to a user\nidentity - it is bound to the org and its effective access is\ndefined by the scopes / permission rules attached to it (it can\nbe restricted to a single project, or kept broader).\nSend as `x-prismeai-api-key: iak_...`.\n","scopes":[],"schemeName":"OrgApiKeyAuth"}}},"servers":{"27d0d9ec-72ac-4d5c-a6bc-365d57e83b24":{"url":"https://{host}/v2/workspaces/slug:llm-gateway/webhooks","description":"Prisme.ai workspace webhooks","variables":{"host":{"default":"api.studio.prisme.ai","description":"API host (override for self-hosted or sandbox)"}}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"User-bound credential carrying an identity: either a session JWT\nor a user access token (`at:*`) generated from the user settings UI.\nSend as `Authorization: Bearer \u003ctoken>`.\nOrg API keys (`iak_*`) are **not** accepted here - they carry\nno user identity. Use the `x-prismeai-api-key` header instead\n(see `OrgApiKeyAuth`).\n","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"User-bound credential carrying an identity: either a session JWT\nor a user access token (`at:*`) generated from the user settings UI.\nSend as `Authorization: Bearer \u003ctoken>`.\nOrg API keys (`iak_*`) are **not** accepted here - they carry\nno user identity. Use the `x-prismeai-api-key` header instead\n(see `OrgApiKeyAuth`).\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"},{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-prismeai-api-key","description":"Organization API key (`iak_{orgSlug}_{uuid}`). Unlike\n`Authorization: Bearer`, this credential is **not** tied to a user\nidentity - it is bound to the org and its effective access is\ndefined by the scopes / permission rules attached to it (it can\nbe restricted to a single project, or kept broader).\nSend as `x-prismeai-api-key: iak_...`.\n","scopes":[],"schemeName":"OrgApiKeyAuth"},"schema":{"title":"x-prismeai-api-key","type":"string","description":"Organization API key (`iak_{orgSlug}_{uuid}`). Unlike\n`Authorization: Bearer`, this credential is **not** tied to a user\nidentity - it is bound to the org and its effective access is\ndefined by the scopes / permission rules attached to it (it can\nbe restricted to a single project, or kept broader).\nSend as `x-prismeai-api-key: iak_...`.\n","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"OrgApiKeyAuth","name":"x-prismeai-api-key"}],"title":"OrgApiKeyAuth"}]},"originalFileLocation":"api-reference/llm-gateway/swagger.yml"},"subdomain":"prismeai","siteName":"Prisme.ai","title":"Create a chat completion - Prisme.ai","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T10:15:01.398Z","originalFileLocation":"llm-gateway/completions/create-a-chat-completion.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=\"OpenAI-compatible chat completions. Routes the request through the gateway\u0026#x27;s provider layer (OpenAI, Azure OpenAI, Anthropic, Vertex, Bedrock, OpenAI-compatible) based on the resolved model spec. Streaming. When stream: true, the response is a text/event-stream of OpenAI-compatible delta chunks (ChatCompletionChunk) followed by a literal data: [DONE] payload, then one final chat.completion frame (same shape as ChatCompletionResponse) carrying the assembled message, finish_reason and usage. Provider-native stream shapes (Anthropic, Bedrock, Vertex) are normalised to OpenAI deltas before being forwarded. Provider errors mid-stream are emitted as a synthetic chunk carrying an error object and a content fallback message, followed by [DONE]. Failover. When the requested model was attempted and failed, and a fallback answered instead (governance failover mapping merged with fallback_models), the switch is reported as failover: { from_model, to_model } on the response body, or on the first forwarded chunk when streaming. Thinking blocks. Anthropic thinking blocks are never streamed. They are returned on the assistant message as reasoning_details, tagged with reasoning_model (the model that answered). Send both back verbatim when replaying the turn: the gateway forwards the blocks only to that same model, drops them for any other, and never sends the reasoning_model tag to a provider. When stream: false (default), the response is a single JSON ChatCompletionResponse. The non-streaming response is enriched with usage.cost, usage.duration_ms, and usage.carbon (Prisme.ai extensions over the standard OpenAI shape). Prisme.ai extensions in the request body: - task_id - opaque correlation identifier for A2A flows. - analytics_context - caller-supplied context (orgSlug, agent_id, user_id, context_id, agent_allowed_models, call_type, message_turn) used to enrich analytics.llm.completion events. - fallback_models - ordered models tried when the requested model fails, merged with the governance failover mapping; each one is checked against the caller\u0026#x27;s access like the primary. Rate limiting. 100 requests per 60 seconds per consumer (auth.user_id or session.id). Governance. Calls may be rejected with 403 MODEL_NOT_ALLOWED or 429 quota errors based on the caller\u0026#x27;s organization governance (resolved via ai-governance-v2), or with 403 HEADER_POLICY_VIOLATION when a required upstream identity header would reach the model provider empty (see header_policy).\">\u003cmeta data-mint-head name=\"keywords\" content=\"sovereign agentic platform, plateforme agentique souveraine, AI Information System, enterprise AI platform, AI agents, agent governance, traceable AI, cloud agnostic, LLM agnostic, agentic workflows\">\u003cmeta data-mint-head name=\"application-name\" content=\"Prisme.ai\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/prismeai/sbDkziZfjieAR-LF/_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/prismeai/sbDkziZfjieAR-LF/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/prismeai/sbDkziZfjieAR-LF/_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/prismeai/sbDkziZfjieAR-LF/_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/prismeai/sbDkziZfjieAR-LF/_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/prismeai/sbDkziZfjieAR-LF/_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/prismeai/sbDkziZfjieAR-LF/_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/prismeai/sbDkziZfjieAR-LF/_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/prismeai/sbDkziZfjieAR-LF/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create a chat completion - Prisme.ai\">\u003cmeta data-mint-head property=\"og:description\" content=\"OpenAI-compatible chat completions. Routes the request through the gateway\u0026#x27;s provider layer (OpenAI, Azure OpenAI, Anthropic, Vertex, Bedrock, OpenAI-compatible) based on the resolved model spec. Streaming. When stream: true, the response is a text/event-stream of OpenAI-compatible delta chunks (ChatCompletionChunk) followed by a literal data: [DONE] payload, then one final chat.completion frame (same shape as ChatCompletionResponse) carrying the assembled message, finish_reason and usage. Provider-native stream shapes (Anthropic, Bedrock, Vertex) are normalised to OpenAI deltas before being forwarded. Provider errors mid-stream are emitted as a synthetic chunk carrying an error object and a content fallback message, followed by [DONE]. Failover. When the requested model was attempted and failed, and a fallback answered instead (governance failover mapping merged with fallback_models), the switch is reported as failover: { from_model, to_model } on the response body, or on the first forwarded chunk when streaming. Thinking blocks. Anthropic thinking blocks are never streamed. They are returned on the assistant message as reasoning_details, tagged with reasoning_model (the model that answered). Send both back verbatim when replaying the turn: the gateway forwards the blocks only to that same model, drops them for any other, and never sends the reasoning_model tag to a provider. When stream: false (default), the response is a single JSON ChatCompletionResponse. The non-streaming response is enriched with usage.cost, usage.duration_ms, and usage.carbon (Prisme.ai extensions over the standard OpenAI shape). Prisme.ai extensions in the request body: - task_id - opaque correlation identifier for A2A flows. - analytics_context - caller-supplied context (orgSlug, agent_id, user_id, context_id, agent_allowed_models, call_type, message_turn) used to enrich analytics.llm.completion events. - fallback_models - ordered models tried when the requested model fails, merged with the governance failover mapping; each one is checked against the caller\u0026#x27;s access like the primary. Rate limiting. 100 requests per 60 seconds per consumer (auth.user_id or session.id). Governance. Calls may be rejected with 403 MODEL_NOT_ALLOWED or 429 quota errors based on the caller\u0026#x27;s organization governance (resolved via ai-governance-v2), or with 403 HEADER_POLICY_VIOLATION when a required upstream identity header would reach the model provider empty (see header_policy).\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Prisme.ai Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.prisme.ai/llm-gateway/completions/create-a-chat-completion\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://prismeai.mintlify.app/_mintlify/api/og/v2?division=Completions\u0026amp;title=Create+a+chat+completion\u0026amp;description=OpenAI-compatible+chat+completions.+Routes+the+request+through+the%0Agateway%27s+provider+layer+%28OpenAI%2C+Azure+OpenAI%2C+Anthropic%2C+Vertex%2C%0ABedrock%2C+OpenAI-compatible\u0026amp;theme=c8710758a6c77ff28ffcc297\u0026amp;signature=9f8e023da2900d063e477abc0bb77fbf18439a90a3f12a0336538578c4946218\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create a chat completion - Prisme.ai\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"OpenAI-compatible chat completions. Routes the request through the gateway\u0026#x27;s provider layer (OpenAI, Azure OpenAI, Anthropic, Vertex, Bedrock, OpenAI-compatible) based on the resolved model spec. Streaming. When stream: true, the response is a text/event-stream of OpenAI-compatible delta chunks (ChatCompletionChunk) followed by a literal data: [DONE] payload, then one final chat.completion frame (same shape as ChatCompletionResponse) carrying the assembled message, finish_reason and usage. Provider-native stream shapes (Anthropic, Bedrock, Vertex) are normalised to OpenAI deltas before being forwarded. Provider errors mid-stream are emitted as a synthetic chunk carrying an error object and a content fallback message, followed by [DONE]. Failover. When the requested model was attempted and failed, and a fallback answered instead (governance failover mapping merged with fallback_models), the switch is reported as failover: { from_model, to_model } on the response body, or on the first forwarded chunk when streaming. Thinking blocks. Anthropic thinking blocks are never streamed. They are returned on the assistant message as reasoning_details, tagged with reasoning_model (the model that answered). Send both back verbatim when replaying the turn: the gateway forwards the blocks only to that same model, drops them for any other, and never sends the reasoning_model tag to a provider. When stream: false (default), the response is a single JSON ChatCompletionResponse. The non-streaming response is enriched with usage.cost, usage.duration_ms, and usage.carbon (Prisme.ai extensions over the standard OpenAI shape). Prisme.ai extensions in the request body: - task_id - opaque correlation identifier for A2A flows. - analytics_context - caller-supplied context (orgSlug, agent_id, user_id, context_id, agent_allowed_models, call_type, message_turn) used to enrich analytics.llm.completion events. - fallback_models - ordered models tried when the requested model fails, merged with the governance failover mapping; each one is checked against the caller\u0026#x27;s access like the primary. Rate limiting. 100 requests per 60 seconds per consumer (auth.user_id or session.id). Governance. Calls may be rejected with 403 MODEL_NOT_ALLOWED or 429 quota errors based on the caller\u0026#x27;s organization governance (resolved via ai-governance-v2), or with 403 HEADER_POLICY_VIOLATION when a required upstream identity header would reach the model provider empty (see header_policy).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://prismeai.mintlify.app/_mintlify/api/og/v2?division=Completions\u0026amp;title=Create+a+chat+completion\u0026amp;description=OpenAI-compatible+chat+completions.+Routes+the+request+through+the%0Agateway%27s+provider+layer+%28OpenAI%2C+Azure+OpenAI%2C+Anthropic%2C+Vertex%2C%0ABedrock%2C+OpenAI-compatible\u0026amp;theme=c8710758a6c77ff28ffcc297\u0026amp;signature=9f8e023da2900d063e477abc0bb77fbf18439a90a3f12a0336538578c4946218\">\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/prismeai/sbDkziZfjieAR-LF/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Prisme.ai\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#255BE0\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.prisme.ai/llm-gateway/completions/create-a-chat-completion\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/llm-gateway/completions/create-a-chat-completion.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.prisme.ai/#organization\",\"name\":\"Prisme.ai\",\"url\":\"https://docs.prisme.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/prismeai/_sSeZNUvs7sBNa3K/logo/light.svg?fit=max\u0026auto=format\u0026n=_sSeZNUvs7sBNa3K\u0026q=85\u0026s=4361458c99ac06f7a551020a022b802c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.prisme.ai#website\",\"name\":\"Prisme.ai\",\"url\":\"https://docs.prisme.ai\",\"publisher\":{\"@id\":\"https://docs.prisme.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.prisme.ai/llm-gateway/completions/create-a-chat-completion#webpage\",\"url\":\"https://docs.prisme.ai/llm-gateway/completions/create-a-chat-completion\",\"name\":\"Create a chat completion\",\"description\":\"OpenAI-compatible chat completions. Routes the request through the gateway's provider layer (OpenAI, Azure OpenAI, Anthropic, Vertex, Bedrock, OpenAI-compatible) based on the resolved model spec. Streaming. When stream: true, the response is a text/event-stream of OpenAI-compatible delta chunks (ChatCompletionChunk) followed by a literal data: [DONE] payload, then one final chat.completion frame (same shape as ChatCompletionResponse) carrying the assembled message, finish_reason and usage. Provider-native stream shapes (Anthropic, Bedrock, Vertex) are normalised to OpenAI deltas before being forwarded. Provider errors mid-stream are emitted as a synthetic chunk carrying an error object and a content fallback message, followed by [DONE]. Failover. When the requested model was attempted and failed, and a fallback answered instead (governance failover mapping merged with fallback_models), the switch is reported as failover: { from_model, to_model } on the response body, or on the first forwarded chunk when streaming. Thinking blocks. Anthropic thinking blocks are never streamed. They are returned on the assistant message as reasoning_details, tagged with reasoning_model (the model that answered). Send both back verbatim when replaying the turn: the gateway forwards the blocks only to that same model, drops them for any other, and never sends the reasoning_model tag to a provider. When stream: false (default), the response is a single JSON ChatCompletionResponse. The non-streaming response is enriched with usage.cost, usage.duration_ms, and usage.carbon (Prisme.ai extensions over the standard OpenAI shape). Prisme.ai extensions in the request body: - task_id - opaque correlation identifier for A2A flows. - analytics_context - caller-supplied context (orgSlug, agent_id, user_id, context_id, agent_allowed_models, call_type, message_turn) used to enrich analytics.llm.completion events. - fallback_models - ordered models tried when the requested model fails, merged with the governance failover mapping; each one is checked against the caller's access like the primary. Rate limiting. 100 requests per 60 seconds per consumer (auth.user_id or session.id). Governance. Calls may be rejected with 403 MODEL_NOT_ALLOWED or 429 quota errors based on the caller's organization governance (resolved via ai-governance-v2), or with 403 HEADER_POLICY_VIOLATION when a required upstream identity header would reach the model provider empty (see header_policy).\",\"dateModified\":\"2026-10-29T10:15:01.398Z\",\"isPartOf\":{\"@id\":\"https://docs.prisme.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.prisme.ai/llm-gateway/completions/create-a-chat-completion#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.prisme.ai/llm-gateway/completions/create-a-chat-completion#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Prisme.ai\",\"item\":\"https://docs.prisme.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a chat completion\",\"item\":\"https://docs.prisme.ai/llm-gateway/completions/create-a-chat-completion\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.prisme.ai/llm-gateway/completions/create-a-chat-completion#apireference\",\"headline\":\"Create a chat completion\",\"name\":\"Create a chat completion\",\"description\":\"OpenAI-compatible chat completions. Routes the request through the gateway's provider layer (OpenAI, Azure OpenAI, Anthropic, Vertex, Bedrock, OpenAI-compatible) based on the resolved model spec. Streaming. When stream: true, the response is a text/event-stream of OpenAI-compatible delta chunks (ChatCompletionChunk) followed by a literal data: [DONE] payload, then one final chat.completion frame (same shape as ChatCompletionResponse) carrying the assembled message, finish_reason and usage. Provider-native stream shapes (Anthropic, Bedrock, Vertex) are normalised to OpenAI deltas before being forwarded. Provider errors mid-stream are emitted as a synthetic chunk carrying an error object and a content fallback message, followed by [DONE]. Failover. When the requested model was attempted and failed, and a fallback answered instead (governance failover mapping merged with fallback_models), the switch is reported as failover: { from_model, to_model } on the response body, or on the first forwarded chunk when streaming. Thinking blocks. Anthropic thinking blocks are never streamed. They are returned on the assistant message as reasoning_details, tagged with reasoning_model (the model that answered). Send both back verbatim when replaying the turn: the gateway forwards the blocks only to that same model, drops them for any other, and never sends the reasoning_model tag to a provider. When stream: false (default), the response is a single JSON ChatCompletionResponse. The non-streaming response is enriched with usage.cost, usage.duration_ms, and usage.carbon (Prisme.ai extensions over the standard OpenAI shape). Prisme.ai extensions in the request body: - task_id - opaque correlation identifier for A2A flows. - analytics_context - caller-supplied context (orgSlug, agent_id, user_id, context_id, agent_allowed_models, call_type, message_turn) used to enrich analytics.llm.completion events. - fallback_models - ordered models tried when the requested model fails, merged with the governance failover mapping; each one is checked against the caller's access like the primary. Rate limiting. 100 requests per 60 seconds per consumer (auth.user_id or session.id). Governance. Calls may be rejected with 403 MODEL_NOT_ALLOWED or 429 quota errors based on the caller's organization governance (resolved via ai-governance-v2), or with 403 HEADER_POLICY_VIOLATION when a required upstream identity header would reach the model provider empty (see header_policy).\",\"url\":\"https://docs.prisme.ai/llm-gateway/completions/create-a-chat-completion\",\"mainEntityOfPage\":{\"@id\":\"https://docs.prisme.ai/llm-gateway/completions/create-a-chat-completion#webpage\"},\"dateModified\":\"2026-10-29T10:15:01.398Z\",\"publisher\":{\"@id\":\"https://docs.prisme.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.prisme.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Prisme.ai\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Prisme.ai","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://blog.prisme.ai"},{"anchor":"Legacy Documentation","icon":"clock-rotate-left","href":"https://prismeai-legacy.mintlify.app/"}]},"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/home"}]},{"tab":"Get Started","pages":[{"title":"Get Started","href":"/get-started/home"}]},{"tab":"Products","pages":[{"title":"Products","href":"/products/overview"}]},{"tab":"API Reference","groups":[{"group":"Introduction","pages":[{"title":"Overview","href":"/api-reference/introduction"},{"title":"SDKs","href":"/api-reference/sdks"},{"title":"Authentication","href":"/api-reference/authentication"},{"title":"Errors","href":"/api-reference/errors"},{"title":"Rate Limits","href":"/api-reference/rate-limits"},{"title":"Security","href":"/api-reference/security"},{"title":"Versioning","href":"/api-reference/versioning"}]},{"group":"Platform API","pages":[{"group":"API Gateway","pages":[{"title":"Get Login Providers","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/login/providers","href":"/playground/api-gateway/get-login-providers"},{"title":"Anonymous Auth","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/login/anonymous","href":"/playground/api-gateway/anonymous-auth"},{"title":"Token Exchange","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/login/token-exchange","href":"/playground/api-gateway/token-exchange"},{"title":"Generic Auth Init","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/login","href":"/playground/api-gateway/generic-auth-init"},{"title":"OAuth Callback (GET)","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/login/callback","href":"/playground/api-gateway/oauth-callback-get"},{"title":"OAuth Callback (POST)","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/login/callback","href":"/playground/api-gateway/oauth-callback-post"},{"title":"SAML Service Provider Metadata","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/login/saml/{slug}/metadata","href":"/playground/api-gateway/saml-service-provider-metadata"},{"title":"Azure Auth Init","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/login/azure","href":"/playground/api-gateway/azure-auth-init"},{"title":"Azure Auth Callback","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/login/azure/callback","href":"/playground/api-gateway/azure-auth-callback"},{"title":"Get My Profile","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/me","href":"/playground/api-gateway/get-my-profile"},{"title":"Delete My User","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/user","href":"/playground/api-gateway/delete-my-user"},{"title":"Patch My User","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/user","href":"/playground/api-gateway/patch-my-user"},{"title":"Post User Photo","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/user/photo","href":"/playground/api-gateway/post-user-photo"},{"title":"List Access Tokens","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/user/accessTokens","href":"/playground/api-gateway/list-access-tokens"},{"title":"Create Access Token","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/user/accessTokens","href":"/playground/api-gateway/create-access-token"},{"title":"Delete Access Token","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/user/accessTokens/{token}","href":"/playground/api-gateway/delete-access-token"},{"title":"Issue Web Session Ticket","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/user/webSessionTicket","href":"/playground/api-gateway/issue-web-session-ticket"},{"title":"Exchange Web Session Ticket","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/user/webSession","href":"/playground/api-gateway/exchange-web-session-ticket"},{"title":"List Auth Providers","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}/auth/sso","href":"/playground/api-gateway/list-auth-providers"},{"title":"Create Auth Provider","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/orgs/{orgSlug}/auth/sso","href":"/playground/api-gateway/create-auth-provider"},{"title":"Get Auth Provider","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}/auth/sso/{slug}","href":"/playground/api-gateway/get-auth-provider"},{"title":"Update Auth Provider","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml put /v2/orgs/{orgSlug}/auth/sso/{slug}","href":"/playground/api-gateway/update-auth-provider"},{"title":"Delete Auth Provider","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/orgs/{orgSlug}/auth/sso/{slug}","href":"/playground/api-gateway/delete-auth-provider"},{"title":"Rotate SAML Signing Certificate","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/orgs/{orgSlug}/auth/sso/{slug}/saml/signing-cert","href":"/playground/api-gateway/rotate-saml-signing-certificate"},{"title":"Setup MFA","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/user/mfa","href":"/playground/api-gateway/setup-mfa"},{"title":"Disable another user's MFA","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/users/{userId}/mfa","href":"/playground/api-gateway/disable-another-users-mfa"},{"title":"Set Meta","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/user/meta","href":"/playground/api-gateway/set-meta"},{"title":"Delete Meta","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/user/meta/{key}","href":"/playground/api-gateway/delete-meta"},{"title":"Find Contacts","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/contacts","href":"/playground/api-gateway/find-contacts"},{"title":"Bulk Patch Users","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/users","href":"/playground/api-gateway/bulk-patch-users"},{"title":"Delete User","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/users/{userId}","href":"/playground/api-gateway/delete-user"},{"title":"Patch User","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/users/{userId}","href":"/playground/api-gateway/patch-user"},{"title":"Signup","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/signup","href":"/playground/api-gateway/signup"},{"title":"Set Active Org","deprecated":true,"version":null,"openapi":"/api-reference/swagger.yml put /v2/user/active-org","href":"/playground/api-gateway/set-active-org"},{"title":"Change Password","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml put /v2/user/password","href":"/playground/api-gateway/change-password"},{"title":"Reset Password","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/user/password","href":"/playground/api-gateway/reset-password"},{"title":"Validate Account","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/user/validate","href":"/playground/api-gateway/validate-account"}]},{"group":"Organizations","pages":[{"title":"List Organizations","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs","href":"/playground/organizations/list-organizations"},{"title":"Create Organization","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/orgs","href":"/playground/organizations/create-organization"},{"title":"Get Organization","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}","href":"/playground/organizations/get-organization"},{"title":"Delete Organization","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/orgs/{orgSlug}","href":"/playground/organizations/delete-organization"},{"title":"Update Organization","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/orgs/{orgSlug}","href":"/playground/organizations/update-organization"},{"title":"List Org Members","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}/members","href":"/playground/organizations/list-org-members"},{"title":"Add Org Members","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/orgs/{orgSlug}/members","href":"/playground/organizations/add-org-members"},{"title":"Remove Org Members","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/orgs/{orgSlug}/members","href":"/playground/organizations/remove-org-members"},{"title":"Export Org Members as CSV","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/orgs/{orgSlug}/members/export","href":"/playground/organizations/export-org-members-as-csv"},{"title":"Get Org Member","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}/members/{userId}","href":"/playground/organizations/get-org-member"},{"title":"Remove Org Member","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/orgs/{orgSlug}/members/{userId}","href":"/playground/organizations/remove-org-member"},{"title":"Update Org Member","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/orgs/{orgSlug}/members/{userId}","href":"/playground/organizations/update-org-member"},{"title":"List Org Invites","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}/invites","href":"/playground/organizations/list-org-invites"},{"title":"Create Org Invite","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/orgs/{orgSlug}/invites","href":"/playground/organizations/create-org-invite"},{"title":"Get Org Invite","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}/invites/{inviteCode}","href":"/playground/organizations/get-org-invite"},{"title":"Revoke Org Invite","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/orgs/{orgSlug}/invites/{inviteCode}","href":"/playground/organizations/revoke-org-invite"},{"title":"Join Organization","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/join","href":"/playground/organizations/join-organization"},{"title":"List Org Roles","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}/roles","href":"/playground/organizations/list-org-roles"},{"title":"Create Org Role","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/orgs/{orgSlug}/roles","href":"/playground/organizations/create-org-role"},{"title":"Get Org Role","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}/roles/{roleSlug}","href":"/playground/organizations/get-org-role"},{"title":"Delete Org Role","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/orgs/{orgSlug}/roles/{roleSlug}","href":"/playground/organizations/delete-org-role"},{"title":"Update Org Role","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/orgs/{orgSlug}/roles/{roleSlug}","href":"/playground/organizations/update-org-role"},{"title":"List Org API Keys","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}/api-keys","href":"/playground/organizations/list-org-api-keys"},{"title":"Create Org API Key","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/orgs/{orgSlug}/api-keys","href":"/playground/organizations/create-org-api-key"},{"title":"Get Org API Key","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}/api-keys/{keyId}","href":"/playground/organizations/get-org-api-key"},{"title":"Delete Org API Key","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/orgs/{orgSlug}/api-keys/{keyId}","href":"/playground/organizations/delete-org-api-key"},{"title":"Update Org API Key","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/orgs/{orgSlug}/api-keys/{keyId}","href":"/playground/organizations/update-org-api-key"},{"title":"Rotate Org API Key","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/orgs/{orgSlug}/api-keys/{keyId}/rotate","href":"/playground/organizations/rotate-org-api-key"},{"title":"Validate Org API Key","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/orgs/{orgSlug}/api-keys/validate","href":"/playground/organizations/validate-org-api-key"},{"title":"List Org Service Accounts","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}/service-accounts","href":"/playground/organizations/list-org-service-accounts"},{"title":"Create Org Service Account","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/orgs/{orgSlug}/service-accounts","href":"/playground/organizations/create-org-service-account"},{"title":"Get Org Service Account","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}/service-accounts/{saSlug}","href":"/playground/organizations/get-org-service-account"},{"title":"Delete Org Service Account","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/orgs/{orgSlug}/service-accounts/{saSlug}","href":"/playground/organizations/delete-org-service-account"},{"title":"Update Org Service Account","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/orgs/{orgSlug}/service-accounts/{saSlug}","href":"/playground/organizations/update-org-service-account"},{"title":"Rotate Org Service Account Secret","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/orgs/{orgSlug}/service-accounts/{saSlug}/rotate","href":"/playground/organizations/rotate-org-service-account-secret"},{"title":"Issue Org Service Account Token","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/orgs/{orgSlug}/service-accounts/{saSlug}/token","href":"/playground/organizations/issue-org-service-account-token"},{"title":"List Org Workspace Privileges","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}/workspace-privileges","href":"/playground/organizations/list-org-workspace-privileges"},{"title":"Get Org Workspace Privileges","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}/workspaces/{workspaceIdOrSlug}/privileges","href":"/playground/organizations/get-org-workspace-privileges"},{"title":"Set Org Workspace Privileges","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml put /v2/orgs/{orgSlug}/workspaces/{workspaceIdOrSlug}/privileges","href":"/playground/organizations/set-org-workspace-privileges"},{"title":"Delete Org Workspace Privileges","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/orgs/{orgSlug}/workspaces/{workspaceIdOrSlug}/privileges","href":"/playground/organizations/delete-org-workspace-privileges"},{"title":"List Org Groups","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}/groups","href":"/playground/organizations/list-org-groups"},{"title":"Create Org Group","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/orgs/{orgSlug}/groups","href":"/playground/organizations/create-org-group"},{"title":"Get Org Group","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}/groups/{groupSlug}","href":"/playground/organizations/get-org-group"},{"title":"Delete Org Group","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/orgs/{orgSlug}/groups/{groupSlug}","href":"/playground/organizations/delete-org-group"},{"title":"Update Org Group","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/orgs/{orgSlug}/groups/{groupSlug}","href":"/playground/organizations/update-org-group"},{"title":"List Org Group Members","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/{orgSlug}/groups/{groupSlug}/members","href":"/playground/organizations/list-org-group-members"},{"title":"Add Org Group Members","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/orgs/{orgSlug}/groups/{groupSlug}/members","href":"/playground/organizations/add-org-group-members"},{"title":"Remove Org Group Members","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/orgs/{orgSlug}/groups/{groupSlug}/members","href":"/playground/organizations/remove-org-group-members"}]},{"group":"Subscriptions","pages":[{"title":"List Org Subscriptions","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/subscriptions","href":"/playground/subscriptions/list-org-subscriptions"},{"title":"Create Org Subscription","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/orgs/subscriptions","href":"/playground/subscriptions/create-org-subscription"},{"title":"Get Org Subscription","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/orgs/subscriptions/{subscriptionSlug}","href":"/playground/subscriptions/get-org-subscription"},{"title":"Delete Org Subscription","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/orgs/subscriptions/{subscriptionSlug}","href":"/playground/subscriptions/delete-org-subscription"},{"title":"Update Org Subscription","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/orgs/subscriptions/{subscriptionSlug}","href":"/playground/subscriptions/update-org-subscription"}]},{"group":"OIDC","pages":[{"title":"OpenID Connect Discovery","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /oidc/.well-known/openid-configuration","href":"/playground/oidc/openid-connect-discovery"},{"title":"OIDC JSON Web Key Set","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /oidc/jwks","href":"/playground/oidc/oidc-json-web-key-set"},{"title":"OAuth 2.0 Authorization Endpoint","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /oidc/auth","href":"/playground/oidc/oauth-20-authorization-endpoint"},{"title":"Resume an OIDC Authorization Request","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /oidc/auth/{uid}","href":"/playground/oidc/resume-an-oidc-authorization-request"},{"title":"OAuth 2.0 Token Endpoint","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /oidc/token","href":"/playground/oidc/oauth-20-token-endpoint"},{"title":"RP-Initiated Logout","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /oidc/session/end","href":"/playground/oidc/rp-initiated-logout"},{"title":"Confirm RP-Initiated Logout","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /oidc/session/end/confirm","href":"/playground/oidc/confirm-rp-initiated-logout"},{"title":"Logout Landing Page","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /oidc/session/end/success","href":"/playground/oidc/logout-landing-page"},{"title":"Get OIDC Interaction Details","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /oidc/interaction/{grant}","href":"/playground/oidc/get-oidc-interaction-details"},{"title":"Submit OIDC Login Credentials","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /oidc/interaction/{grant}/login","href":"/playground/oidc/submit-oidc-login-credentials"},{"title":"Enrol an Authenticator During Login","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /oidc/interaction/{grant}/mfa/setup","href":"/playground/oidc/enrol-an-authenticator-during-login"},{"title":"Validate the Second Factor During Login","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /oidc/interaction/{grant}/mfa","href":"/playground/oidc/validate-the-second-factor-during-login"}]},{"group":"Monitoring","pages":[{"title":"Get Platform Readiness","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/readiness","href":"/playground/monitoring/get-platform-readiness"}]},{"group":"Permissions","pages":[{"title":"Get Permissions","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/{subjectType}/{subjectId}/permissions","href":"/playground/permissions/get-permissions"},{"title":"Share","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/{subjectType}/{subjectId}/permissions","href":"/playground/permissions/share"},{"title":"Revoke Permissions","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/{subjectType}/{subjectId}/permissions/{id}","href":"/playground/permissions/revoke-permissions"}]},{"group":"Prisme.ai Events","pages":[{"title":"Events Longpolling","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/events","href":"/playground/prismeai-events/events-longpolling"},{"title":"Send Workspace Event","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/{workspaceId}/events","href":"/playground/prismeai-events/send-workspace-event"},{"title":"Workspace Usage","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/usage","href":"/playground/prismeai-events/workspace-usage"},{"title":"Search","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/{workspaceId}/search","href":"/playground/prismeai-events/search"},{"title":"Global Search","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/search","href":"/playground/prismeai-events/global-search"}]},{"group":"Prisme.ai Runtime","pages":[{"title":"Automation Webhook (GET)","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/webhooks/{automationSlug}*","href":"/playground/prismeai-runtime/automation-webhook-get"},{"title":"Automation Webhook (PUT)","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml put /v2/workspaces/{workspaceId}/webhooks/{automationSlug}*","href":"/playground/prismeai-runtime/automation-webhook-put"},{"title":"Automation Webhook (POST)","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/{workspaceId}/webhooks/{automationSlug}*","href":"/playground/prismeai-runtime/automation-webhook-post"},{"title":"Automation Webhook (DELETE)","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/workspaces/{workspaceId}/webhooks/{automationSlug}*","href":"/playground/prismeai-runtime/automation-webhook-delete"},{"title":"Automation Webhook (PATCH)","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/workspaces/{workspaceId}/webhooks/{automationSlug}*","href":"/playground/prismeai-runtime/automation-webhook-patch"}]},{"group":"Prisme.ai Workspaces","pages":[{"title":"Get Workspace Labels","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/labels","href":"/playground/prismeai-workspaces/get-workspace-labels"},{"title":"Get Workspaces","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces","href":"/playground/prismeai-workspaces/get-workspaces"},{"title":"Create Workspace","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces","href":"/playground/prismeai-workspaces/create-workspace"},{"title":"Get Workspace","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}","href":"/playground/prismeai-workspaces/get-workspace"},{"title":"Delete Workspace","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/workspaces/{workspaceId}","href":"/playground/prismeai-workspaces/delete-workspace"},{"title":"Update Workspace","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/workspaces/{workspaceId}","href":"/playground/prismeai-workspaces/update-workspace"},{"title":"Get Workspace Config","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/config","href":"/playground/prismeai-workspaces/get-workspace-config"},{"title":"Update Workspace Config","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/workspaces/{workspaceId}/config","href":"/playground/prismeai-workspaces/update-workspace-config"},{"title":"Import New Workspace","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/import","href":"/playground/prismeai-workspaces/import-new-workspace"},{"title":"Import Existing Workspace","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/{workspaceId}/import","href":"/playground/prismeai-workspaces/import-existing-workspace"},{"title":"List Workspace Versions","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/versions","href":"/playground/prismeai-workspaces/list-workspace-versions"},{"title":"Publish Workspace Version","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/{workspaceId}/versions","href":"/playground/prismeai-workspaces/publish-workspace-version"},{"title":"Delete Workspace Version","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/workspaces/{workspaceId}/versions/{versionId}","href":"/playground/prismeai-workspaces/delete-workspace-version"},{"title":"Pull Workspace Version","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/{workspaceId}/versions/{versionId}/pull","href":"/playground/prismeai-workspaces/pull-workspace-version"},{"title":"Pull Platform Versions","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/platform/versions/latest/pull","href":"/playground/prismeai-workspaces/pull-platform-versions"},{"title":"Push Platform Versions","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/platform/versions","href":"/playground/prismeai-workspaces/push-platform-versions"},{"title":"Duplicate Workspace Version","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/{workspaceId}/versions/{versionId}/duplicate","href":"/playground/prismeai-workspaces/duplicate-workspace-version"},{"title":"Export Workspace Version","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/{workspaceId}/versions/{versionId}/export","href":"/playground/prismeai-workspaces/export-workspace-version"},{"title":"Get Workspace Status","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/status","href":"/playground/prismeai-workspaces/get-workspace-status"},{"title":"Set Write Lock","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/{workspaceId}/writeLock","href":"/playground/prismeai-workspaces/set-write-lock"},{"title":"Clear Write Lock","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/workspaces/{workspaceId}/writeLock","href":"/playground/prismeai-workspaces/clear-write-lock"},{"title":"Export Multiple Workspaces","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/export","href":"/playground/prismeai-workspaces/export-multiple-workspaces"},{"title":"Create Automation","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/{workspaceId}/automations","href":"/playground/prismeai-workspaces/create-automation"},{"title":"Get Automation","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/automations/{automationSlug}","href":"/playground/prismeai-workspaces/get-automation"},{"title":"Delete Automation","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/workspaces/{workspaceId}/automations/{automationSlug}","href":"/playground/prismeai-workspaces/delete-automation"},{"title":"Update Automation","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/workspaces/{workspaceId}/automations/{automationSlug}","href":"/playground/prismeai-workspaces/update-automation"},{"title":"Test Automation","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/{workspaceId}/test/{automationSlug}","href":"/playground/prismeai-workspaces/test-automation"},{"title":"List Pages","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/pages","href":"/playground/prismeai-workspaces/list-pages"},{"title":"Create Page","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/{workspaceId}/pages","href":"/playground/prismeai-workspaces/create-page"},{"title":"Get Page","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/pages/{slug}","href":"/playground/prismeai-workspaces/get-page"},{"title":"Delete Page","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/workspaces/{workspaceId}/pages/{slug}","href":"/playground/prismeai-workspaces/delete-page"},{"title":"Update Page","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/workspaces/{workspaceId}/pages/{slug}","href":"/playground/prismeai-workspaces/update-page"},{"title":"Get Workspace Bundle","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/pages/{workspaceSlug}/_bundle","href":"/playground/prismeai-workspaces/get-workspace-bundle"},{"title":"Get Page By Slug","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/pages/{workspaceSlug}/{pageSlug}","href":"/playground/prismeai-workspaces/get-page-by-slug"},{"title":"Get Security","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/security","href":"/playground/prismeai-workspaces/get-security"},{"title":"Update Security","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml put /v2/workspaces/{workspaceId}/security","href":"/playground/prismeai-workspaces/update-security"},{"title":"Get Roles","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/security/roles","href":"/playground/prismeai-workspaces/get-roles"},{"title":"Search Apps","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/apps","href":"/playground/prismeai-workspaces/search-apps"},{"title":"Publish App","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/apps","href":"/playground/prismeai-workspaces/publish-app"},{"title":"Get App","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/apps/{appSlug}","href":"/playground/prismeai-workspaces/get-app"},{"title":"Delete App","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/apps/{appSlug}","href":"/playground/prismeai-workspaces/delete-app"},{"title":"List App Instances","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/apps","href":"/playground/prismeai-workspaces/list-app-instances"},{"title":"Install App Instance","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/{workspaceId}/apps","href":"/playground/prismeai-workspaces/install-app-instance"},{"title":"Get App Instance Config","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/apps/{slug}/config","href":"/playground/prismeai-workspaces/get-app-instance-config"},{"title":"Update App Instance Config","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/workspaces/{workspaceId}/apps/{slug}/config","href":"/playground/prismeai-workspaces/update-app-instance-config"},{"title":"Get App Instance","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/apps/{slug}","href":"/playground/prismeai-workspaces/get-app-instance"},{"title":"Uninstall App Instance","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/workspaces/{workspaceId}/apps/{slug}","href":"/playground/prismeai-workspaces/uninstall-app-instance"},{"title":"Configure App Instance","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/workspaces/{workspaceId}/apps/{slug}","href":"/playground/prismeai-workspaces/configure-app-instance"},{"title":"Get File","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/files/{id}","href":"/playground/prismeai-workspaces/get-file"},{"title":"Replace File Content","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml put /v2/workspaces/{workspaceId}/files/{id}","href":"/playground/prismeai-workspaces/replace-file-content"},{"title":"Delete File","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/workspaces/{workspaceId}/files/{id}","href":"/playground/prismeai-workspaces/delete-file"},{"title":"Update File","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/workspaces/{workspaceId}/files/{id}","href":"/playground/prismeai-workspaces/update-file"},{"title":"List Files","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/files","href":"/playground/prismeai-workspaces/list-files"},{"title":"Upload File","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/{workspaceId}/files","href":"/playground/prismeai-workspaces/upload-file"},{"title":"Share File","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/{workspaceId}/files/{id}/share","href":"/playground/prismeai-workspaces/share-file"}]},{"group":"Secrets","pages":[{"title":"Get Workspace Secrets","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/security/secrets","href":"/playground/secrets/get-workspace-secrets"},{"title":"Update Workspace Secrets","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml put /v2/workspaces/{workspaceId}/security/secrets","href":"/playground/secrets/update-workspace-secrets"},{"title":"Patch Workspace Secrets","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml patch /v2/workspaces/{workspaceId}/security/secrets","href":"/playground/secrets/patch-workspace-secrets"},{"title":"Delete Workspace Secret","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/workspaces/{workspaceId}/security/secrets/{secretName}","href":"/playground/secrets/delete-workspace-secret"}]},{"group":"ApiKeys","pages":[{"title":"List API Keys","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml get /v2/workspaces/{workspaceId}/security/apikeys","href":"/playground/apikeys/list-api-keys"},{"title":"Create API Key","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml post /v2/workspaces/{workspaceId}/security/apikeys","href":"/playground/apikeys/create-api-key"},{"title":"Update API Key","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml put /v2/workspaces/{workspaceId}/security/apikeys/{apiKey}","href":"/playground/apikeys/update-api-key"},{"title":"Delete API Key","deprecated":null,"version":null,"openapi":"/api-reference/swagger.yml delete /v2/workspaces/{workspaceId}/security/apikeys/{apiKey}","href":"/playground/apikeys/delete-api-key"}]}]},{"group":"Agent Creator API","pages":[{"group":"Profiles","pages":[{"title":"List available agent profiles (presets)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/profiles","href":"/agent-factory/profiles/list-available-agent-profiles-presets"}]},{"group":"Activity","pages":[{"title":"Get the activity feed for an agent","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/activity","href":"/agent-factory/activity/get-the-activity-feed-for-an-agent"}]},{"group":"Analytics","pages":[{"title":"Get analytics (series + summary) for an agent","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/analytics","href":"/agent-factory/analytics/get-analytics-series-+-summary-for-an-agent"},{"title":"On-demand metrics refresh for an agent","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/refresh-metrics","href":"/agent-factory/analytics/on-demand-metrics-refresh-for-an-agent"}]},{"group":"Agents","pages":[{"title":"List agents","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents","href":"/agent-factory/agents/list-agents"},{"title":"Create a new agent","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents","href":"/agent-factory/agents/create-a-new-agent"},{"title":"Get a single agent by ID","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}","href":"/agent-factory/agents/get-a-single-agent-by-id"},{"title":"Delete an agent and its associated data","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml delete /v1/agents/{agentId}","href":"/agent-factory/agents/delete-an-agent-and-its-associated-data"},{"title":"Update an agent (partial update)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml patch /v1/agents/{agentId}","href":"/agent-factory/agents/update-an-agent-partial-update"},{"title":"Get featured agents and categories","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/discovery","href":"/agent-factory/agents/get-featured-agents-and-categories"},{"title":"Import an agent from AGENTS.md","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/import","href":"/agent-factory/agents/import-an-agent-from-agentsmd"},{"title":"Resolve a file_search citation link (302 redirect)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/citations/source_url","href":"/agent-factory/agents/resolve-a-file_search-citation-link-302-redirect"},{"title":"Export an agent as AGENTS.md","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/export","href":"/agent-factory/agents/export-an-agent-as-agentsmd"},{"title":"List all agents of an organization (admin)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/orgs/{orgSlug}/agents","href":"/agent-factory/agents/list-all-agents-of-an-organization-admin"}]},{"group":"Access","pages":[{"title":"List access bindings for an agent","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/access","href":"/agent-factory/access/list-access-bindings-for-an-agent"},{"title":"Share an agent with a principal (create binding)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/access","href":"/agent-factory/access/share-an-agent-with-a-principal-create-binding"},{"title":"Revoke an agent access binding","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml delete /v1/agents/{agentId}/access/{principalType}/{principalId}","href":"/agent-factory/access/revoke-an-agent-access-binding"},{"title":"Change an agent share's role","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml patch /v1/agents/{agentId}/access/{principalType}/{principalId}","href":"/agent-factory/access/change-an-agent-shares-role"},{"title":"Request access to a published restricted agent","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/access/request","href":"/agent-factory/access/request-access-to-a-published-restricted-agent"},{"title":"List access requests for an agent","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/access/requests","href":"/agent-factory/access/list-access-requests-for-an-agent"},{"title":"Approve or reject an access request","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/access/requests/{requestId}","href":"/agent-factory/access/approve-or-reject-an-access-request"}]},{"group":"ApiKeys","pages":[{"title":"List agent-scoped API keys","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/api-keys","href":"/agent-factory/apikeys/list-agent-scoped-api-keys"},{"title":"Mint a new agent-scoped API key","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/api-keys","href":"/agent-factory/apikeys/mint-a-new-agent-scoped-api-key"},{"title":"Revoke an agent API key","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml delete /v1/agents/{agentId}/api-keys/{keyId}","href":"/agent-factory/apikeys/revoke-an-agent-api-key"},{"title":"Rotate (regenerate) an agent API key secret","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/api-keys/{keyId}/rotate","href":"/agent-factory/apikeys/rotate-regenerate-an-agent-api-key-secret"}]},{"group":"Publishing","pages":[{"title":"Publish an agent","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/publish","href":"/agent-factory/publishing/publish-an-agent"},{"title":"Unpublish an agent","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/unpublish","href":"/agent-factory/publishing/unpublish-an-agent"},{"title":"Discard draft changes and revert to the published snapshot","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/discard-draft","href":"/agent-factory/publishing/discard-draft-changes-and-revert-to-the-published-snapshot"}]},{"group":"Ratings","pages":[{"title":"Rate an agent (1-5)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/ratings","href":"/agent-factory/ratings/rate-an-agent-1-5"}]},{"group":"Conversations","pages":[{"title":"List conversations for an agent","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/conversations","href":"/agent-factory/conversations/list-conversations-for-an-agent"},{"title":"Create a new conversation","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/conversations","href":"/agent-factory/conversations/create-a-new-conversation"},{"title":"Delete all conversations for the caller on this agent","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml delete /v1/agents/{agentId}/conversations","href":"/agent-factory/conversations/delete-all-conversations-for-the-caller-on-this-agent"},{"title":"Get a single conversation with its message history","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/conversations/{contextId}","href":"/agent-factory/conversations/get-a-single-conversation-with-its-message-history"},{"title":"Delete a single conversation (cascades to tasks + artifacts)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml delete /v1/agents/{agentId}/conversations/{contextId}","href":"/agent-factory/conversations/delete-a-single-conversation-cascades-to-tasks-+-artifacts"},{"title":"Update conversation metadata (title, archive, star)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml patch /v1/agents/{agentId}/conversations/{contextId}","href":"/agent-factory/conversations/update-conversation-metadata-title-archive-star"},{"title":"Usage totals for one conversation","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/conversations/{contextId}/usage","href":"/agent-factory/conversations/usage-totals-for-one-conversation"},{"title":"List the caller's connector accounts for an agent's knowledge bases","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/connector_accounts","href":"/agent-factory/conversations/list-the-callers-connector-accounts-for-an-agents-knowledge-bases"}]},{"group":"Traces","pages":[{"title":"Execution trace of one agent turn","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/traces/{correlationId}","href":"/agent-factory/traces/execution-trace-of-one-agent-turn"},{"title":"Inputs and outputs of one trace step","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/traces/{correlationId}/events/{eventId}","href":"/agent-factory/traces/inputs-and-outputs-of-one-trace-step"}]},{"group":"Messages","pages":[{"title":"Send a message to an agent (A2A, non-streaming)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/messages/send","href":"/agent-factory/messages/send-a-message-to-an-agent-a2a-non-streaming"},{"title":"Stream an agent reply via SSE (A2A)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/messages/stream","href":"/agent-factory/messages/stream-an-agent-reply-via-sse-a2a"}]},{"group":"Tasks","pages":[{"title":"List tasks for an agent","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/tasks","href":"/agent-factory/tasks/list-tasks-for-an-agent"},{"title":"Get a single task by ID","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/tasks/{taskId}","href":"/agent-factory/tasks/get-a-single-task-by-id"},{"title":"Update a task from a hook callback","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml patch /v1/agents/{agentId}/tasks/{taskId}","href":"/agent-factory/tasks/update-a-task-from-a-hook-callback"},{"title":"Push an event into a task from a hook callback","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/tasks/{taskId}/events","href":"/agent-factory/tasks/push-an-event-into-a-task-from-a-hook-callback"},{"title":"Cancel a running task (A2A)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/tasks/{taskId}/cancel","href":"/agent-factory/tasks/cancel-a-running-task-a2a"},{"title":"Resolve a pending HITL approval (external approver)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/tasks/{taskId}/resolve","href":"/agent-factory/tasks/resolve-a-pending-hitl-approval-external-approver"},{"title":"Get a task snapshot (A2A subscribe - non-streaming)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/tasks/{taskId}/subscribe","href":"/agent-factory/tasks/get-a-task-snapshot-a2a-subscribe--non-streaming"}]},{"group":"Artifacts","pages":[{"title":"List artifacts owned by the caller","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/artifacts","href":"/agent-factory/artifacts/list-artifacts-owned-by-the-caller"},{"title":"Get an artifact (with current version content)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/artifacts/{artifactId}","href":"/agent-factory/artifacts/get-an-artifact-with-current-version-content"},{"title":"Delete an artifact and all of its versions","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml delete /v1/artifacts/{artifactId}","href":"/agent-factory/artifacts/delete-an-artifact-and-all-of-its-versions"},{"title":"Update artifact content or restore a version","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml patch /v1/artifacts/{artifactId}","href":"/agent-factory/artifacts/update-artifact-content-or-restore-a-version"}]},{"group":"Shares","pages":[{"title":"Create a share snapshot of a conversation or single message","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/conversations/{contextId}/share","href":"/agent-factory/shares/create-a-share-snapshot-of-a-conversation-or-single-message"},{"title":"Create (or refresh) a share for an artifact","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/artifacts/{artifactId}/shares","href":"/agent-factory/shares/create-or-refresh-a-share-for-an-artifact"},{"title":"List shares created by the caller","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/shares","href":"/agent-factory/shares/list-shares-created-by-the-caller"},{"title":"Get a share owned by the caller","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/shares/{shareId}","href":"/agent-factory/shares/get-a-share-owned-by-the-caller"},{"title":"Delete a share owned by the caller","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml delete /v1/shares/{shareId}","href":"/agent-factory/shares/delete-a-share-owned-by-the-caller"},{"title":"Public-facing share viewer (auth-required)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/shared/{shareId}","href":"/agent-factory/shares/public-facing-share-viewer-auth-required"}]},{"group":"A2A","pages":[{"title":"Legacy A2A gateway - task snapshot dispatch (GET)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/a2a","href":"/agent-factory/a2a/legacy-a2a-gateway--task-snapshot-dispatch-get"},{"title":"Legacy A2A gateway - JSON-RPC 2.0 dispatch (POST)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/a2a","href":"/agent-factory/a2a/legacy-a2a-gateway--json-rpc-20-dispatch-post"},{"title":"A2A task snapshot (per-agent, GET)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/a2a","href":"/agent-factory/a2a/a2a-task-snapshot-per-agent-get"},{"title":"A2A JSON-RPC 2.0 dispatch (per-agent)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/a2a","href":"/agent-factory/a2a/a2a-json-rpc-20-dispatch-per-agent"},{"title":"A2A discovery card (.well-known/agent.json)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/.well-known/agent.json","href":"/agent-factory/a2a/a2a-discovery-card-well-knownagentjson"},{"title":"A2A extended card (full agent config)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/extendedAgentCard","href":"/agent-factory/a2a/a2a-extended-card-full-agent-config"}]},{"group":"Tools","pages":[{"title":"List the tools attached to an agent","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/tools","href":"/agent-factory/tools/list-the-tools-attached-to-an-agent"},{"title":"Attach a tool to an agent","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/tools","href":"/agent-factory/tools/attach-a-tool-to-an-agent"},{"title":"Get a single tool from an agent","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/tools/{toolId}","href":"/agent-factory/tools/get-a-single-tool-from-an-agent"},{"title":"Remove a tool from an agent","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml delete /v1/agents/{agentId}/tools/{toolId}","href":"/agent-factory/tools/remove-a-tool-from-an-agent"},{"title":"List the tools an attached MCP server exposes","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/tools/{toolId}/capabilities","href":"/agent-factory/tools/list-the-tools-an-attached-mcp-server-exposes"}]},{"group":"Retention","pages":[{"title":"Get an agent's retention policy","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/retention","href":"/agent-factory/retention/get-an-agents-retention-policy"},{"title":"Upsert an agent retention policy","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml put /v1/agents/{agentId}/retention","href":"/agent-factory/retention/upsert-an-agent-retention-policy"},{"title":"Delete the agent-level retention policy (revert to org/defaults)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml delete /v1/agents/{agentId}/retention","href":"/agent-factory/retention/delete-the-agent-level-retention-policy-revert-to-orgdefaults"},{"title":"Get the org-level retention policy","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/orgs/{orgSlug}/retention","href":"/agent-factory/retention/get-the-org-level-retention-policy"},{"title":"Upsert the org-level retention policy","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml put /v1/orgs/{orgSlug}/retention","href":"/agent-factory/retention/upsert-the-org-level-retention-policy"}]},{"group":"Evaluations","pages":[{"title":"List or fetch an evaluation","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml get /v1/agents/{agentId}/evaluations","href":"/agent-factory/evaluations/list-or-fetch-an-evaluation"},{"title":"Start a new evaluation run","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/agents/{agentId}/evaluations","href":"/agent-factory/evaluations/start-a-new-evaluation-run"}]},{"group":"Admin","pages":[{"title":"Delete a user's data (GDPR erasure)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/admin/user-deletion","href":"/agent-factory/admin/delete-a-users-data-gdpr-erasure"},{"title":"Export a user's data (GDPR access)","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/admin/user-export","href":"/agent-factory/admin/export-a-users-data-gdpr-access"}]},{"group":"Push","pages":[{"title":"Register the signed-in user's mobile device for push notifications","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml post /v1/push/devices","href":"/agent-factory/push/register-the-signed-in-users-mobile-device-for-push-notifications"},{"title":"Forget one of the signed-in user's devices","description":"Called at sign-out. Only the owner of the device can forget it.","deprecated":null,"version":null,"openapi":"/api-reference/agent-factory/swagger.yml delete /v1/push/devices","href":"/agent-factory/push/forget-one-of-the-signed-in-users-devices"}]}]},{"group":"LLM Gateway API","pages":[{"group":"Completions","pages":[{"title":"Create a chat completion","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml post /v1/chat/completions","href":"/llm-gateway/completions/create-a-chat-completion"}]},{"group":"Embeddings","pages":[{"title":"Create text embeddings","description":"OpenAI-compatible embeddings endpoint. Accepts a single string or an\narray of strings as `input` and routes through the gateway's provider\nlayer. Returns the standard OpenAI `EmbeddingResponse`. When the input\nis a single string, the response also exposes a flat `embedding` field\n(Prisme.ai convenience extension) in addition to `data[0].embedding`.\n\n`analytics_context` is a Prisme.ai extension used to enrich analytics\nevents.\n\nGovernance overlays may reject the call (forwarded as 403 / 429 with\nthe upstream `result.status`, e.g. `MODEL_NOT_ALLOWED`,\n`HEADER_POLICY_VIOLATION`, `INVALID_DIMENSIONS`).\n","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml post /v1/embeddings","href":"/llm-gateway/embeddings/create-text-embeddings"}]},{"group":"Rerank","pages":[{"title":"Rerank documents by relevance","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml post /v1/rerank","href":"/llm-gateway/rerank/rerank-documents-by-relevance"}]},{"group":"Images","pages":[{"title":"Generate images","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml post /v1/images/generations","href":"/llm-gateway/images/generate-images"},{"title":"Edit an image","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml post /v1/images/edits","href":"/llm-gateway/images/edit-an-image"}]},{"group":"Audio","pages":[{"title":"Transcribe audio into text","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml post /v1/audio/transcriptions","href":"/llm-gateway/audio/transcribe-audio-into-text"}]},{"group":"Defaults","pages":[{"title":"Get resolved default models","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml get /v1/defaults","href":"/llm-gateway/defaults/get-resolved-default-models"}]},{"group":"Models","pages":[{"title":"List models from the catalogue","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml get /v1/models","href":"/llm-gateway/models/list-models-from-the-catalogue"},{"title":"Bulk-replace the entire model catalogue","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml put /v1/models","href":"/llm-gateway/models/bulk-replace-the-entire-model-catalogue"},{"title":"Create a model in the catalogue","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml post /v1/models","href":"/llm-gateway/models/create-a-model-in-the-catalogue"},{"title":"Read the Prisme.ai reference model catalogue","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml get /v1/models/catalog","href":"/llm-gateway/models/read-the-prismeai-reference-model-catalogue"},{"title":"Align the environment's models with the catalogue","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml post /v1/models/catalog/sync","href":"/llm-gateway/models/align-the-environments-models-with-the-catalogue"},{"title":"List provider ids declared but not registered","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml get /v1/models/unregistered","href":"/llm-gateway/models/list-provider-ids-declared-but-not-registered"},{"title":"List carbon-footprint regions","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml get /v1/models/regions","href":"/llm-gateway/models/list-carbon-footprint-regions"},{"title":"Get a model by ID","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml get /v1/models/{modelId}","href":"/llm-gateway/models/get-a-model-by-id"},{"title":"Delete a model","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml delete /v1/models/{modelId}","href":"/llm-gateway/models/delete-a-model"},{"title":"Update a model","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml patch /v1/models/{modelId}","href":"/llm-gateway/models/update-a-model"},{"title":"List the models available at one provider entry","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml get /v1/providers/{type}/{index}/models","href":"/llm-gateway/models/list-the-models-available-at-one-provider-entry"}]},{"group":"Test","pages":[{"title":"Smoke-test a model through the gateway","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml post /v1/test","href":"/llm-gateway/test/smoke-test-a-model-through-the-gateway"},{"title":"Probe which optional request features a model accepts","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml post /v1/test/capabilities","href":"/llm-gateway/test/probe-which-optional-request-features-a-model-accepts"}]},{"group":"Quotas","pages":[{"title":"Get the caller's effective quotas","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml get /v1/quotas/me","href":"/llm-gateway/quotas/get-the-callers-effective-quotas"},{"title":"Get the organization's quota usage","deprecated":null,"version":null,"openapi":"/api-reference/llm-gateway/swagger.yml get /v1/quotas/usage","href":"/llm-gateway/quotas/get-the-organizations-quota-usage"}]}]},{"group":"Governance API","pages":[{"group":"Announcements","pages":[{"title":"List announcements for the current organization","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml get /v1/announcements","href":"/ai-governance-v2/announcements/list-announcements-for-the-current-organization"},{"title":"Create an announcement","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml post /v1/announcements","href":"/ai-governance-v2/announcements/create-an-announcement"},{"title":"Get an announcement by id","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml get /v1/announcements/{announcementId}","href":"/ai-governance-v2/announcements/get-an-announcement-by-id"},{"title":"Delete an announcement","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml delete /v1/announcements/{announcementId}","href":"/ai-governance-v2/announcements/delete-an-announcement"},{"title":"Update an announcement","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml patch /v1/announcements/{announcementId}","href":"/ai-governance-v2/announcements/update-an-announcement"}]},{"group":"Legal","pages":[{"title":"Read legal content for a type and the caller's organization","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml get /v1/legal/{type}","href":"/ai-governance-v2/legal/read-legal-content-for-a-type-and-the-callers-organization"},{"title":"Upsert legal content for a type","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml put /v1/legal/{type}","href":"/ai-governance-v2/legal/upsert-legal-content-for-a-type"},{"title":"Delete legal content for a type","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml delete /v1/legal/{type}","href":"/ai-governance-v2/legal/delete-legal-content-for-a-type"}]},{"group":"Notifications","pages":[{"title":"List notifications for the current user","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml get /v1/notifications","href":"/ai-governance-v2/notifications/list-notifications-for-the-current-user"},{"title":"Get a notification and mark it as read","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml get /v1/notifications/{notificationId}","href":"/ai-governance-v2/notifications/get-a-notification-and-mark-it-as-read"},{"title":"Dismiss a notification for the current user","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml post /v1/notifications/{notificationId}/dismiss","href":"/ai-governance-v2/notifications/dismiss-a-notification-for-the-current-user"},{"title":"Get unread notifications count for a product","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml get /v1/notifications/unread-count","href":"/ai-governance-v2/notifications/get-unread-notifications-count-for-a-product"}]},{"group":"Observability","pages":[{"title":"Get a cross-organization platform observability summary","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml get /v1/observability/platform/summary","href":"/ai-governance-v2/observability/get-a-cross-organization-platform-observability-summary"},{"title":"List the top N most active workspaces for a period","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml get /v1/observability/platform/top-workspaces","href":"/ai-governance-v2/observability/list-the-top-n-most-active-workspaces-for-a-period"},{"title":"Get the unified observability dashboard for a workspace","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml get /v1/observability/{workspaceId}/dashboard","href":"/ai-governance-v2/observability/get-the-unified-observability-dashboard-for-a-workspace"},{"title":"Get the workspace dependency graph","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml get /v1/observability/{workspaceId}/dependencies","href":"/ai-governance-v2/observability/get-the-workspace-dependency-graph"},{"title":"Get the real-time event feed for a workspace","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml get /v1/observability/{workspaceId}/feed","href":"/ai-governance-v2/observability/get-the-real-time-event-feed-for-a-workspace"},{"title":"Detect anomalies in errors, latency, and traffic","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml get /v1/observability/{workspaceId}/issues","href":"/ai-governance-v2/observability/detect-anomalies-in-errors-latency-and-traffic"},{"title":"Get the full trace timeline for a correlationId","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml get /v1/observability/{workspaceId}/traces/{correlationId}","href":"/ai-governance-v2/observability/get-the-full-trace-timeline-for-a-correlationid"},{"title":"List workspaces visible to observability users","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml get /v1/observability/workspaces","href":"/ai-governance-v2/observability/list-workspaces-visible-to-observability-users"}]},{"group":"Orgs","pages":[{"title":"List active organizations (platform-wide)","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml get /v1/orgs/active","href":"/ai-governance-v2/orgs/list-active-organizations-platform-wide"},{"title":"List audit events for an organization","deprecated":null,"version":null,"openapi":"/api-reference/ai-governance-v2/swagger.yml get /v1/orgs/{orgSlug}/audit","href":"/ai-governance-v2/orgs/list-audit-events-for-an-organization"}]}]},{"group":"Knowledges API","pages":[{"group":"Knowledge Bases","pages":[{"title":"List knowledge bases visible to the caller","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml get /v1/knowledge_bases","href":"/storage/knowledge-bases/list-knowledge-bases-visible-to-the-caller"},{"title":"Create a knowledge base","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml post /v1/knowledge_bases","href":"/storage/knowledge-bases/create-a-knowledge-base"},{"title":"Retrieve a knowledge base","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml get /v1/knowledge_bases/{knowledgeBaseId}","href":"/storage/knowledge-bases/retrieve-a-knowledge-base"},{"title":"Delete a knowledge base","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml delete /v1/knowledge_bases/{knowledgeBaseId}","href":"/storage/knowledge-bases/delete-a-knowledge-base"},{"title":"Update knowledge base metadata and crawl settings","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml patch /v1/knowledge_bases/{knowledgeBaseId}","href":"/storage/knowledge-bases/update-knowledge-base-metadata-and-crawl-settings"},{"title":"Bulk reindex DISPATCHER - queue re-processing of every document","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml post /v1/knowledge_bases/{knowledgeBaseId}/reindex","href":"/storage/knowledge-bases/bulk-reindex-dispatcher--queue-re-processing-of-every-document"}]},{"group":"Documents","pages":[{"title":"List documents","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml get /v1/knowledge_bases/{knowledgeBaseId}/documents","href":"/storage/documents/list-documents"},{"title":"Attach a source (idempotent upsert)","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml post /v1/knowledge_bases/{knowledgeBaseId}/documents","href":"/storage/documents/attach-a-source-idempotent-upsert"},{"title":"Retrieve a document","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml get /v1/knowledge_bases/{knowledgeBaseId}/documents/{documentId}","href":"/storage/documents/retrieve-a-document"},{"title":"Detach a source","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml delete /v1/knowledge_bases/{knowledgeBaseId}/documents/{documentId}","href":"/storage/documents/detach-a-source"},{"title":"Update document metadata","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml patch /v1/knowledge_bases/{knowledgeBaseId}/documents/{documentId}","href":"/storage/documents/update-document-metadata"},{"title":"Force a re-run of the indexing pipeline (re-fetch, re-parse, re-chunk, re-embed)","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml post /v1/knowledge_bases/{knowledgeBaseId}/documents/{documentId}/reindex","href":"/storage/documents/force-a-re-run-of-the-indexing-pipeline-re-fetch-re-parse-re-chunk-re-embed"},{"title":"List the document's chunks","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml get /v1/knowledge_bases/{knowledgeBaseId}/documents/{documentId}/chunks","href":"/storage/documents/list-the-documents-chunks"},{"title":"Resolve a citation link (lazy)","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml get /v1/knowledge_bases/{knowledgeBaseId}/documents/{documentId}/source_url","href":"/storage/documents/resolve-a-citation-link-lazy"},{"title":"Resolve citation links in a batch","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml post /v1/knowledge_bases/{knowledgeBaseId}/source_urls","href":"/storage/documents/resolve-citation-links-in-a-batch"}]},{"group":"Web Sources","pages":[{"title":"List crawl seeds","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml get /v1/knowledge_bases/{knowledgeBaseId}/web_sources","href":"/storage/web-sources/list-crawl-seeds"},{"title":"Create a recurring crawl seed","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml post /v1/knowledge_bases/{knowledgeBaseId}/web_sources","href":"/storage/web-sources/create-a-recurring-crawl-seed"},{"title":"Retrieve a crawl seed (config + metrics + last/next run)","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml get /v1/knowledge_bases/{knowledgeBaseId}/web_sources/{seedId}","href":"/storage/web-sources/retrieve-a-crawl-seed-config-+-metrics-+-lastnext-run"},{"title":"Delete a crawl seed","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml delete /v1/knowledge_bases/{knowledgeBaseId}/web_sources/{seedId}","href":"/storage/web-sources/delete-a-crawl-seed"},{"title":"Update seed configuration","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml patch /v1/knowledge_bases/{knowledgeBaseId}/web_sources/{seedId}","href":"/storage/web-sources/update-seed-configuration"}]},{"group":"Search","pages":[{"title":"Semantic search","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml post /v1/knowledge_bases/{knowledgeBaseId}/search","href":"/storage/search/semantic-search"}]},{"group":"MCP","pages":[{"title":"MCP endpoint (agentic filesystem access)","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml post /v1/knowledge_bases/{knowledgeBaseId}/mcp","href":"/storage/mcp/mcp-endpoint-agentic-filesystem-access"}]},{"group":"Access","pages":[{"title":"List access bindings","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml get /v1/knowledge_bases/{knowledgeBaseId}/access","href":"/storage/access/list-access-bindings"},{"title":"Grant access","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml post /v1/knowledge_bases/{knowledgeBaseId}/access","href":"/storage/access/grant-access"},{"title":"Revoke access","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml delete /v1/knowledge_bases/{knowledgeBaseId}/access/{principalType}/{principalId}","href":"/storage/access/revoke-access"},{"title":"Change a principal's role","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml patch /v1/knowledge_bases/{knowledgeBaseId}/access/{principalType}/{principalId}","href":"/storage/access/change-a-principals-role"}]},{"group":"API Keys","pages":[{"title":"List API keys","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml get /v1/knowledge_bases/{knowledgeBaseId}/api-keys","href":"/storage/api-keys/list-api-keys"},{"title":"Mint an API key","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml post /v1/knowledge_bases/{knowledgeBaseId}/api-keys","href":"/storage/api-keys/mint-an-api-key"},{"title":"Revoke an API key","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml delete /v1/knowledge_bases/{knowledgeBaseId}/api-keys/{apiKeyId}","href":"/storage/api-keys/revoke-an-api-key"},{"title":"Rotate an API key","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml post /v1/knowledge_bases/{knowledgeBaseId}/api-keys/{apiKeyId}/rotate","href":"/storage/api-keys/rotate-an-api-key"}]},{"group":"Stats","pages":[{"title":"Dashboard stats","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml get /v1/stats","href":"/storage/stats/dashboard-stats"}]},{"group":"Formats","pages":[{"title":"List the file formats a knowledge base can ingest","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml get /v1/supported_formats","href":"/storage/formats/list-the-file-formats-a-knowledge-base-can-ingest"}]},{"group":"Files","pages":[{"title":"Delete an uploaded file that no document uses","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml delete /v1/files/{fileId}","href":"/storage/files/delete-an-uploaded-file-that-no-document-uses"}]},{"group":"Skills","pages":[{"title":"List skills","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml get /v1/skills","href":"/storage/skills/list-skills"},{"title":"Create a skill","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml post /v1/skills","href":"/storage/skills/create-a-skill"},{"title":"Retrieve a skill","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml get /v1/skills/{skillId}","href":"/storage/skills/retrieve-a-skill"},{"title":"Delete a skill","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml delete /v1/skills/{skillId}","href":"/storage/skills/delete-a-skill"},{"title":"Update a skill","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml patch /v1/skills/{skillId}","href":"/storage/skills/update-a-skill"}]},{"group":"Admin","pages":[{"title":"Run the storage self-test","deprecated":null,"version":null,"openapi":"/api-reference/storage/swagger.yml post /v1/test","href":"/storage/admin/run-the-storage-self-test"}]}]},{"group":"Collections API","pages":[{"group":"Collections","pages":[{"title":"List collections","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml get /v1/collections","href":"/ai-collection/collections/list-collections"},{"title":"Create a collection","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml post /v1/collections","href":"/ai-collection/collections/create-a-collection"},{"title":"Get collection metadata","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml get /v1/collections/{collection_id}","href":"/ai-collection/collections/get-collection-metadata"},{"title":"Delete a collection","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml delete /v1/collections/{collection_id}","href":"/ai-collection/collections/delete-a-collection"},{"title":"Update collection metadata","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml patch /v1/collections/{collection_id}","href":"/ai-collection/collections/update-collection-metadata"},{"title":"Get saved charts","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml get /v1/collections/{collection_id}/charts","href":"/ai-collection/collections/get-saved-charts"},{"title":"Replace saved charts","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml put /v1/collections/{collection_id}/charts","href":"/ai-collection/collections/replace-saved-charts"}]},{"group":"Records","pages":[{"title":"Query records","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml get /v1/collections/{collection_id}/data","href":"/ai-collection/records/query-records"},{"title":"Insert records","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml post /v1/collections/{collection_id}/data","href":"/ai-collection/records/insert-records"},{"title":"Upsert a record","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml post /v1/collections/{collection_id}/data/upsert","href":"/ai-collection/records/upsert-a-record"},{"title":"Get a record","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml get /v1/collections/{collection_id}/data/{record_id}","href":"/ai-collection/records/get-a-record"},{"title":"Delete a record","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml delete /v1/collections/{collection_id}/data/{record_id}","href":"/ai-collection/records/delete-a-record"},{"title":"Update a record","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml patch /v1/collections/{collection_id}/data/{record_id}","href":"/ai-collection/records/update-a-record"},{"title":"Bulk-insert records (large imports)","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml post /v1/collections/{collection_id}/data/bulk","href":"/ai-collection/records/bulk-insert-records-large-imports"}]},{"group":"Analytics","pages":[{"title":"Count records","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml get /v1/collections/{collection_id}/data/count","href":"/ai-collection/analytics/count-records"},{"title":"Get distinct values of a field","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml get /v1/collections/{collection_id}/data/distinct","href":"/ai-collection/analytics/get-distinct-values-of-a-field"},{"title":"Run aggregations","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml post /v1/collections/{collection_id}/data/aggregate","href":"/ai-collection/analytics/run-aggregations"}]},{"group":"Schema","pages":[{"title":"Add or merge columns","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml patch /v1/collections/{collection_id}/schema","href":"/ai-collection/schema/add-or-merge-columns"},{"title":"Apply indexes and unique constraints","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml post /v1/collections/{collection_id}/indexes","href":"/ai-collection/schema/apply-indexes-and-unique-constraints"}]},{"group":"AI","pages":[{"title":"Ask a plain-language question","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml post /v1/collections/{collection_id}/ask","href":"/ai-collection/ai/ask-a-plain-language-question"},{"title":"Suggest a schema from a description","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml post /v1/suggest-schema","href":"/ai-collection/ai/suggest-a-schema-from-a-description"}]},{"group":"Sharing","pages":[{"title":"List access bindings","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml get /v1/collections/{collection_id}/access","href":"/ai-collection/sharing/list-access-bindings"},{"title":"Grant access","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml post /v1/collections/{collection_id}/access","href":"/ai-collection/sharing/grant-access"},{"title":"Get an access binding","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml get /v1/collections/{collection_id}/access/{principal_type}/{principal_id}","href":"/ai-collection/sharing/get-an-access-binding"},{"title":"Revoke access","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml delete /v1/collections/{collection_id}/access/{principal_type}/{principal_id}","href":"/ai-collection/sharing/revoke-access"},{"title":"Change a binding role","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml patch /v1/collections/{collection_id}/access/{principal_type}/{principal_id}","href":"/ai-collection/sharing/change-a-binding-role"}]},{"group":"API Keys","pages":[{"title":"List API keys","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml get /v1/collections/{collection_id}/api-keys","href":"/ai-collection/api-keys/list-api-keys"},{"title":"Mint an API key","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml post /v1/collections/{collection_id}/api-keys","href":"/ai-collection/api-keys/mint-an-api-key"},{"title":"Get an API key","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml get /v1/collections/{collection_id}/api-keys/{key_id}","href":"/ai-collection/api-keys/get-an-api-key"},{"title":"Revoke an API key","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml delete /v1/collections/{collection_id}/api-keys/{key_id}","href":"/ai-collection/api-keys/revoke-an-api-key"},{"title":"Rotate an API key","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml post /v1/collections/{collection_id}/api-keys/{key_id}/rotate","href":"/ai-collection/api-keys/rotate-an-api-key"}]},{"group":"MCP","pages":[{"title":"MCP endpoint (JSON-RPC 2.0)","deprecated":null,"version":null,"openapi":"/api-reference/ai-collection/swagger.yml post /ai-collection/mcp","href":"/ai-collection/mcp/mcp-endpoint-json-rpc-20"}]}]}]},{"tab":"App Store","pages":[{"title":"App Store","href":"/apps-store/overview"}]},{"tab":"Self-Hosting","pages":[{"title":"Self-Hosting","href":"/self-hosting/overview"}]},{"tab":"Resources","pages":[{"title":"Resources","href":"/resources/adoption-governance/overview"}]}]},"basePath":"","title":"Create a chat completion - Prisme.ai","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","Page-BAvA99GL.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js","Markdown-nKm-uidQ.js","clsx-ClVdStUn.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CIQkMg3R.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-ImrFS4Fy.js"]}