Add a role: "system" message to messages for an instruction that applies from that point in the conversation. The top-level system field stays the same, so a cached prefix still hits.
curl https://api.phaseo.app/v1/messages \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "anthropic/claude-opus-5.5", "max_tokens": 512, "system": "You are a code review assistant.", "messages": [ { "role": "user", "content": "Review process() in utils.py." }, { "role": "assistant", "content": "The loop is fine; the regex is compiled on every call." }, { "role": "user", "content": "Now review the code that calls it." }, { "role": "system", "content": "From now on, include type annotations in every suggestion." } ] }'
A system message takes a string or text blocks. It must come straight after a user turn (or an assistant turn ending in a server tool result) and be the last message or be followed by an assistant turn. Other positions return a 400.
Claude Fable 5 and 5.1, Mythos 5 and 5.1, Opus 4.8, Opus 5 and 5.5, Sonnet 5.5 and Haiku 5.5 receive it in place. Other Claude models, including Sonnet 5, and every Claude model on Microsoft Foundry receive it as part of the top-level system prompt. Other providers receive it as a system message, the same as one sent to Chat Completions.
clear_at, output_config, and tool_addition or tool_removal blocks are not supported.
stream: true also works with tool loops. For gateway-managed server tools, Phaseo may materialize the upstream tool-call turn, continue the loop, and re-emit a synthetic stream.
The Anthropic-native web search tool shape is also accepted directly in tools, for example type: "web_search_20250305".
The X-Phaseo-Strictness header controls how unsupported parameters are handled.
Optional ordered fallback models tried after model. model is required and is always the primary model. When an attempt fails with 429, 500, 502, 503, or 504, the next entry is tried; other errors are returned unchanged. Accepts up to 25 model IDs or presets; duplicates and entries equal to model are ignored. Each attempt is validated, logged, and billed as its own request, and the response model field and routing trace show the model that served the request. Streaming requests fall back only before the first byte, and video and music jobs fall back only at submission. Batch, realtime, and council requests reject models. Fallbacks set on a dynamic route take precedence, and phaseo/auto cannot be combined with models.
Fills in the prompt template saved on a preset. Leave out model or set it to the same reference, and send an empty conversation or the turns to add after the template.
Gateway plugins for this request. web adds web search and web-fetch adds page fetching to any model; response-healing repairs malformed JSON in buffered structured-output responses. Workspace and preset defaults are merged with this list. An unknown plugin id returns 400 unknown_gateway_plugin.
Adds the phaseo:web_search server tool to the request, so any model can search the web. The request runs, and searches are counted and billed, exactly as with a phaseo:web_search tool. If the request already has a web search tool, the plugin adds nothing. Other options are ignored.
Anthropic context editing. edits takes clear_tool_uses_* and clear_thinking_* strategies and is sent to Anthropic with its beta header. Other providers run the request without it and list context_management in X-Phaseo-Dropped-Params. Compaction edits (compact_*) return 400.
Groups related requests so they stay on the provider that holds their prompt cache. Phaseo sends a hash of your workspace and this key upstream, never the raw key.
Prompt cache control. Use type ephemeral with an optional ttl of 5m or 1h. scope applies only to a top-level Claude cache policy. Amazon Bedrock and Google Vertex AI cache Claude 3.7 Sonnet, 3.5 Sonnet and 3 Opus for 5 minutes only; there the ttl is removed and a removed 1h is reported in X-Phaseo-Dropped-Params as cache_control.ttl.
Present when the request used context_management and Anthropic applied an edit. applied_edits lists each edit with what it cleared. Streams carry it on the final message_delta event.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Phaseo Docs","description":"Documentation for Phaseo Gateway, SDKs, routing, pricing, guardrails, async jobs, and model discovery across providers.","colors":{"primary":"#0069a8","light":"#38bdf8","dark":"#0069a8"},"logo":{"light":"https://mintcdn.com/aistats/bxzzjromPyjBlHKc/logo/light.svg?fit=max\u0026auto=format\u0026n=bxzzjromPyjBlHKc\u0026q=85\u0026s=f1e10d307a46469852edc2ae198e3c2a","dark":"https://mintcdn.com/aistats/bxzzjromPyjBlHKc/logo/dark.svg?fit=max\u0026auto=format\u0026n=bxzzjromPyjBlHKc\u0026q=85\u0026s=6719dd9bade9b7f4025561841736d72e","href":"https://phaseo.app"},"favicon":"https://mintcdn.com/aistats/UZfkYM9yX2Gru_Ij/favicon.svg?fit=max\u0026auto=format\u0026n=UZfkYM9yX2Gru_Ij\u0026q=85\u0026s=04efcd38cad9cdb599aa92c800724bd5","api":{"openapi":"openapi/v1/openapi.yaml","playground":{"display":"interactive"},"examples":{"defaults":"all","languages":["javascript","python","bash","go","java","php","ruby"],"prefill":true,"autogenerate":true}},"background":{"color":{"light":"#ffffff","dark":"#0a0a0a"}},"navbar":{"primary":{"type":"button","label":"Get API Key","href":"https://phaseo.app/settings/keys"}},"footer":{"socials":{"x":"https://x.com/phaseoteam","github":"https://github.com/phaseoteam/Phaseo","discord":"https://discord.gg/aQyywCvgZ5","linkedin":"https://www.linkedin.com/company/phaseoapp","reddit":"https://www.reddit.com/r/Phaseo"},"links":[{"items":[{"label":"Models","href":"https://phaseo.app/models"},{"label":"Status","href":"https://status.phaseo.app"},{"label":"Support","href":"https://phaseo.app/help"}]}]},"seo":{"metatags":{"canonical":"https://phaseo.app/docs"}},"fonts":{"family":"Montserrat"},"icons":{"library":"lucide"},"styling":{"eyebrows":"section","latex":true},"contextual":{"options":["copy","view","chatgpt","claude","cursor","vscode","devin","mcp","add-mcp"],"display":"header"},"interaction":{"drilldown":false},"metadata":{"timestamp":true},"markdown":{"instructions":["Phaseo Gateway base URL: https://api.phaseo.app/v1. Send `Authorization: Bearer $PHASEO_API_KEY` with every request.","Model IDs look like `provider/model`, for example `openai/gpt-6-astra`. Do not guess IDs: list them with `GET /v1/models` or check https://phaseo.app/models. `phaseo/free` routes to an available free model and needs no wallet balance.","For new text integrations prefer `POST /v1/responses`. `POST /v1/chat/completions` (OpenAI format) and `POST /v1/messages` (Anthropic format) suit existing code.","The full API contract is https://phaseo.app/docs/openapi/v1/openapi.yaml. Official SDKs: `@phaseo/sdk` (TypeScript) and `phaseo` (Python), plus Go, C#, PHP, Ruby and Rust.","Search these docs over MCP at https://phaseo.app/docs/mcp, and install Phaseo skills with `npx skills add https://phaseo.app/docs`. If a page is wrong or out of date, report it with the MCP `submit_feedback` tool.","Manage Phaseo accounts with the `phaseo` CLI (`npm install -g @phaseo/cli`, then `phaseo login` or `phaseo login --device-code`), the `/v1` Management API or the MCP server at `https://mcp.phaseo.app/mcp?access=manage`. Do not send users to the dashboard for account tasks. A person is still needed for sign-up, approving a sign-in, paying the first top-up on the checkout link that `phaseo credits add` returns when no card is saved, confirming each saved-card top-up from the emailed link, and account security (password, MFA, passkeys). Create API keys with `phaseo keys create --name \u003cname> --json`; never guess one. Credit top-ups need `phaseo login --scopes billing:write` first. Task map: https://phaseo.app/docs/v1/developers/manage-from-an-agent.md."]},"navigation":{"languages":[{"language":"en","href":"v1"},{"language":"es","footer":{"socials":{"x":"https://x.com/phaseoteam","github":"https://github.com/phaseoteam/Phaseo","discord":"https://discord.gg/aQyywCvgZ5","linkedin":"https://www.linkedin.com/company/phaseoapp","reddit":"https://www.reddit.com/r/Phaseo"},"links":[{"items":[{"label":"Modelos","href":"https://phaseo.app/es-ES/models"},{"label":"Estado","href":"https://status.phaseo.app"},{"label":"Soporte","href":"https://phaseo.app/es-ES/help"}]}]},"navbar":{"primary":{"type":"button","label":"Obtener clave de API","href":"https://phaseo.app/es-ES/settings/keys"}},"href":"es/v1"},{"language":"fr","footer":{"socials":{"x":"https://x.com/phaseoteam","github":"https://github.com/phaseoteam/Phaseo","discord":"https://discord.gg/aQyywCvgZ5","linkedin":"https://www.linkedin.com/company/phaseoapp","reddit":"https://www.reddit.com/r/Phaseo"},"links":[{"items":[{"label":"Modèles","href":"https://phaseo.app/fr-FR/models"},{"label":"État","href":"https://status.phaseo.app"},{"label":"Assistance","href":"https://phaseo.app/fr-FR/help"}]}]},"navbar":{"primary":{"type":"button","label":"Obtenir une clé API","href":"https://phaseo.app/fr-FR/settings/keys"}},"href":"fr/v1"},{"language":"de","footer":{"socials":{"x":"https://x.com/phaseoteam","github":"https://github.com/phaseoteam/Phaseo","discord":"https://discord.gg/aQyywCvgZ5","linkedin":"https://www.linkedin.com/company/phaseoapp","reddit":"https://www.reddit.com/r/Phaseo"},"links":[{"items":[{"label":"Modelle","href":"https://phaseo.app/de-DE/models"},{"label":"Status","href":"https://status.phaseo.app"},{"label":"Support","href":"https://phaseo.app/de-DE/help"}]}]},"navbar":{"primary":{"type":"button","label":"API-Schlüssel erstellen","href":"https://phaseo.app/de-DE/settings/keys"}},"href":"de/v1"},{"language":"pt-BR","footer":{"socials":{"x":"https://x.com/phaseoteam","github":"https://github.com/phaseoteam/Phaseo","discord":"https://discord.gg/aQyywCvgZ5","linkedin":"https://www.linkedin.com/company/phaseoapp","reddit":"https://www.reddit.com/r/Phaseo"},"links":[{"items":[{"label":"Modelos","href":"https://phaseo.app/pt-BR/models"},{"label":"Status","href":"https://status.phaseo.app"},{"label":"Suporte","href":"https://phaseo.app/pt-BR/help"}]}]},"navbar":{"primary":{"type":"button","label":"Obter chave de API","href":"https://phaseo.app/pt-BR/settings/keys"}},"href":"pt-BR/v1"},{"language":"ja","footer":{"socials":{"x":"https://x.com/phaseoteam","github":"https://github.com/phaseoteam/Phaseo","discord":"https://discord.gg/aQyywCvgZ5","linkedin":"https://www.linkedin.com/company/phaseoapp","reddit":"https://www.reddit.com/r/Phaseo"},"links":[{"items":[{"label":"モデル","href":"https://phaseo.app/ja/models"},{"label":"ステータス","href":"https://status.phaseo.app"},{"label":"サポート","href":"https://phaseo.app/ja/help"}]}]},"navbar":{"primary":{"type":"button","label":"API キーを取得","href":"https://phaseo.app/ja/settings/keys"}},"href":"ja/v1"},{"language":"zh-Hans","footer":{"socials":{"x":"https://x.com/phaseoteam","github":"https://github.com/phaseoteam/Phaseo","discord":"https://discord.gg/aQyywCvgZ5","linkedin":"https://www.linkedin.com/company/phaseoapp","reddit":"https://www.reddit.com/r/Phaseo"},"links":[{"items":[{"label":"模型","href":"https://phaseo.app/zh-Hans/models"},{"label":"状态","href":"https://status.phaseo.app"},{"label":"支持","href":"https://phaseo.app/zh-Hans/help"}]}]},"navbar":{"primary":{"type":"button","label":"获取 API 密钥","href":"https://phaseo.app/zh-Hans/settings/keys"}},"href":"zh-Hans/v1"},{"language":"hi","footer":{"socials":{"x":"https://x.com/phaseoteam","github":"https://github.com/phaseoteam/Phaseo","discord":"https://discord.gg/aQyywCvgZ5","linkedin":"https://www.linkedin.com/company/phaseoapp","reddit":"https://www.reddit.com/r/Phaseo"},"links":[{"items":[{"label":"मॉडल","href":"https://phaseo.app/hi/models"},{"label":"स्थिति","href":"https://status.phaseo.app"},{"label":"सहायता","href":"https://phaseo.app/hi/help"}]}]},"navbar":{"primary":{"type":"button","label":"API कुंजी प्राप्त करें","href":"https://phaseo.app/hi/settings/keys"}},"href":"hi/v1"},{"language":"ar","footer":{"socials":{"x":"https://x.com/phaseoteam","github":"https://github.com/phaseoteam/Phaseo","discord":"https://discord.gg/aQyywCvgZ5","linkedin":"https://www.linkedin.com/company/phaseoapp","reddit":"https://www.reddit.com/r/Phaseo"},"links":[{"items":[{"label":"النماذج","href":"https://phaseo.app/ar-SA/models"},{"label":"الحالة","href":"https://status.phaseo.app"},{"label":"الدعم","href":"https://phaseo.app/ar-SA/help"}]}]},"navbar":{"primary":{"type":"button","label":"احصل على مفتاح API","href":"https://phaseo.app/ar-SA/settings/keys"}},"href":"ar/v1"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"aistats","hasAudioNarration":false,"actualSubdomain":"aistats","customDomains":["phaseo.app"],"gitSource":{"type":"github","owner":"phaseoteam","repo":"phaseo","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4deddfbb9913dc79f0788","collectionId":"7cc99020-52aa-4e50-b87f-7b5f0febdad9","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4deddfbb9913dc79f0788"},"feedback":{"thumbs":true,"agentFeedback":true,"issues":true,"edits":true},"entitlements":{},"buildId":"6ae4deddfbb9913dc79f0788","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"ar","tag":"مرجع API","count":233},{"language":"de","tag":"API-Referenz","count":233},{"language":"es","tag":"Referencia API","count":233},{"language":"fr","tag":"Référence API","count":233},{"language":"hi","tag":"API संदर्भ","count":233},{"language":"ja","tag":"APIリファレンス","count":233},{"language":"pt-BR","tag":"Referência API","count":233},{"language":"en","tag":"API Reference","count":233},{"language":"zh-Hans","tag":"API 参考","count":233},{"language":"hi","tag":"दस्तावेज़","count":138},{"language":"ja","tag":"ドキュメント","count":138},{"language":"zh-Hans","tag":"文档","count":138},{"language":"ar","tag":"الوثائق","count":136},{"language":"de","tag":"Docs","count":136},{"language":"es","tag":"Docs","count":136},{"language":"fr","tag":"Docs","count":136},{"language":"pt-BR","tag":"Docs","count":136},{"language":"en","tag":"Docs","count":136},{"language":"ar","tag":"SDK العميل","count":123},{"language":"de","tag":"SDKs","count":123},{"language":"es","tag":"SDKs","count":123},{"language":"fr","tag":"SDK client","count":123},{"language":"hi","tag":"क्लाइंट SDK","count":123},{"language":"ja","tag":"SDK","count":123},{"language":"pt-BR","tag":"SDKs","count":123},{"language":"en","tag":"Client SDKs","count":123},{"language":"zh-Hans","tag":"客户端 SDK","count":123},{"language":"ar","tag":"حزمة SDK للوكلاء","count":98},{"language":"de","tag":"Agenten-SDK","count":98},{"language":"es","tag":"SDK de agentes","count":98},{"language":"fr","tag":"SDK d’agents","count":98},{"language":"hi","tag":"एजेंट SDK","count":98},{"language":"ja","tag":"エージェント SDK","count":98},{"language":"pt-BR","tag":"SDK de agentes","count":98},{"language":"en","tag":"Agent SDK","count":98},{"language":"zh-Hans","tag":"智能体 SDK","count":98},{"language":"ar","tag":"إدارة مساحات العمل","count":93},{"language":"de","tag":"Arbeitsbereichsverwaltung","count":93},{"language":"es","tag":"Gestión de espacios de trabajo","count":93},{"language":"fr","tag":"Gestion des espaces de travail","count":93},{"language":"hi","tag":"वर्कस्पेस प्रबंधन","count":93},{"language":"ja","tag":"ワークスペース管理","count":93},{"language":"pt-BR","tag":"Gerenciamento de espaços de trabalho","count":93},{"language":"en","tag":"Workspace Management","count":93},{"language":"zh-Hans","tag":"工作区管理","count":93},{"language":"ar","tag":"التوجيه والسياسات","count":58},{"language":"de","tag":"Routing und Richtlinien","count":58},{"language":"es","tag":"Enrutamiento y políticas","count":58},{"language":"fr","tag":"Routage et politiques","count":58},{"language":"hi","tag":"रूटिंग और नीतियाँ","count":58},{"language":"ja","tag":"ルーティングとポリシー","count":58},{"language":"pt-BR","tag":"Roteamento e políticas","count":58},{"language":"zh-Hans","tag":"路由与策略","count":58},{"language":"en","tag":"Routing \u0026 Policies","count":52},{"language":"ar","tag":"البناء","count":51},{"language":"de","tag":"Entwickeln","count":51},{"language":"es","tag":"Desarrollar","count":51},{"language":"fr","tag":"Développer","count":51},{"language":"hi","tag":"बनाएँ","count":51},{"language":"ja","tag":"構築","count":51},{"language":"pt-BR","tag":"Criar","count":51},{"language":"en","tag":"Build","count":51},{"language":"zh-Hans","tag":"构建","count":51},{"language":"ar","tag":"الميزات","count":36},{"language":"ar","tag":"التكاملات","count":36},{"language":"de","tag":"Funktionen","count":36},{"language":"de","tag":"Integrationen","count":36},{"language":"es","tag":"Funciones","count":36},{"language":"es","tag":"Integraciones","count":36},{"language":"fr","tag":"Fonctionnalités","count":36},{"language":"fr","tag":"Intégrations","count":36},{"language":"hi","tag":"सुविधाएँ","count":36},{"language":"hi","tag":"एकीकरण","count":36},{"language":"ja","tag":"機能","count":36},{"language":"ja","tag":"連携","count":36},{"language":"pt-BR","tag":"Recursos","count":36},{"language":"pt-BR","tag":"Integrações","count":36},{"language":"en","tag":"Features","count":36},{"language":"en","tag":"Integrations","count":36},{"language":"zh-Hans","tag":"功能","count":36},{"language":"zh-Hans","tag":"集成","count":36},{"language":"ar","tag":"دليل الوصفات","count":30},{"language":"de","tag":"Rezeptbuch","count":30},{"language":"es","tag":"Recetario","count":30},{"language":"fr","tag":"Recettes","count":30},{"language":"hi","tag":"कुकबुक","count":30},{"language":"ja","tag":"クックブック","count":30},{"language":"pt-BR","tag":"Receitas","count":30},{"language":"en","tag":"Cookbook","count":30},{"language":"zh-Hans","tag":"实用指南","count":30}],"searchSettings":{"maxResults":10,"showContentSnippets":true}},"assistantConfig":{},"basePath":"/docs","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":"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":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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}],"googleFontsInlined":true},"customCss":[{"filePath":"styles.css","content":":root{--sidebar-width:17.5rem}#navbar div:has(>a>img.nav-logo){min-width:max-content}#navbar nav[class*=\"navbar:flex\"]{justify-content:safe center;overflow-x:auto;scrollbar-width:none}#navbar nav[class*=\"navbar:flex\"] li>:is(a, button){padding-inline:.6875rem}@media (max-width:1279px){#navbar nav[class*=\"navbar:flex\"] li>:is(a, button){padding-inline:.5rem;font-size:.8125rem}}#navbar :is([class*=\"rounded-full\"], #localization-select-trigger){border-radius:.375rem}@media (max-width:1399px){html:not([lang=en]) #navbar nav[class*=\"navbar:flex\"] li>:is(a, button)>svg[style*=mask-image]{display:none}}@media (max-width:1279px){#navbar nav[class*=\"navbar:flex\"] li>:is(a, button)>svg[style*=mask-image]{display:none}}@media (min-width:1280px){#content-area{--content-width:clamp(40.5rem, min(100vw - 41rem, 100vw - 2 * var(--sidebar-width) - 5rem), 56rem)}#content-container:has(>[data-api-example]) #content-area{--content-width:clamp(40.5rem, 100vw - var(--sidebar-width) - 35.5rem, 56rem);margin-inline:auto!important}}#footer{border-top-width:1px}#footer>div{max-width:none;padding-inline:2rem}@media (min-width:1800px){:root{--sidebar-width:24rem}#sidebar-content :is(a, button) .flex-wrap{flex-wrap:nowrap}#sidebar-content button>div:first-child{min-width:0}#sidebar-content .sidebar-group-header,#sidebar-content :is(a, button) div>span:first-child:not(.method-nav-pill,.nav-tag-pill){min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}#page-title{font-size:1.875rem;line-height:2.25rem}#header .prose{font-size:1rem;line-height:1.625rem}#content.mdx-content{font-size:.9375rem;line-height:1.625rem}#content.mdx-content h2{font-size:1.25rem;line-height:1.75rem}#content.mdx-content h3{font-size:1.0625rem;line-height:1.5rem}#sidebar-content div[class~=\"lg:mt-8\"]{margin-top:1.25rem}:is(.sidebar-group-header, .eyebrow){text-transform:none}.ph-paths{border-top:1px solid rgb(0 0 0/.08)}.ph-paths>*{display:block;margin:0}.ph-paths a{display:grid;grid-template-columns:16rem 1fr;gap:.25rem 1.5rem;padding:.875rem .125rem;border-bottom:1px solid rgb(0 0 0/.08);color:rgb(107 114 128);font-size:.9375rem;line-height:1.5;text-decoration:none}.ph-paths a strong,.ph-sdks a{align-items:center;color:rgb(17 24 39)}.ph-paths a strong{display:flex;gap:.625rem;font-weight:600}.ph-paths a:hover strong,.ph-sdks a:hover{color:rgb(var(--primary))}.ph-sdks>*{display:flex;flex-wrap:wrap;gap:.75rem 1.75rem;margin:0}.ph-sdks a{display:inline-flex;gap:.5rem;font-weight:500;text-decoration:none}:is(html.dark, html[data-theme=\"dark\"]) :is(.ph-paths, .ph-paths a){border-color:rgb(255 255 255/.1)}:is(html.dark, html[data-theme=\"dark\"]) .ph-paths a{color:rgb(156 163 175)}:is(html.dark, html[data-theme=\"dark\"]) :is(.ph-paths a strong, .ph-sdks a){color:rgb(255 255 255)}:is(html.dark, html[data-theme=\"dark\"]) .ph-paths a:hover strong,:is(html.dark, html[data-theme=\"dark\"]) .ph-sdks a:hover{color:rgb(var(--primary-light))}@media (max-width:640px){.ph-paths a{grid-template-columns:1fr}}:is(html.dark, html[data-theme=\"dark\"]) img[src$=\"/icons/brands/cline.svg\"]{content:url(/icons/brands/cline-dark.svg)}:is(html.dark, html[data-theme=\"dark\"]) img[src$=\"/icons/brands/cursor.svg\"]{content:url(/icons/brands/cursor-dark.svg)}:is(html.dark, html[data-theme=\"dark\"]) img[src$=\"/icons/brands/kilo.svg\"]{content:url(/icons/brands/kilo-dark.svg)}:is(html.dark, html[data-theme=\"dark\"]) img[src$=\"/icons/brands/opencode.svg\"]{content:url(/icons/brands/opencode-dark.svg)}:is(html.dark, html[data-theme=\"dark\"]) img[src$=\"/icons/brands/prime-agent.svg\"]{content:url(/icons/brands/prime-agent-dark.svg)}:is(html.dark, html[data-theme=\"dark\"]) img[src$=\"/icons/brands/continue.svg\"]{content:url(/icons/brands/continue-dark.svg)}:is(html.dark, html[data-theme=\"dark\"]) img[src$=\"/icons/brands/oh-my-pi.svg\"]{content:url(/icons/brands/oh-my-pi-dark.svg)}:is(html.dark, html[data-theme=\"dark\"]) img[src$=\"/icons/brands/pi.svg\"]{content:url(/icons/brands/pi-dark.svg)}:is(html.dark, html[data-theme=\"dark\"]) img[src$=\"/icons/brands/roo-code.svg\"],:is(html.dark, html[data-theme=\"dark\"]) img[src$=\"/icons/brands/zed.svg\"]{filter:invert(1)}html[lang=ar] :is(#content-area, #sidebar-content, #table-of-contents-content){direction:rtl}html[lang=ar] #content-area :is(pre, code){direction:ltr;unicode-bidi:isolate}html[lang=ar] #content-area .prose li:not(.not-prose li){padding-left:6px;padding-right:32px}html[lang=ar] #content-area .prose li:not(.not-prose li)::before{left:auto;right:8px}.changelog-filters{position:sticky;top:3rem;z-index:20;display:flex;align-items:center;gap:.5rem;margin:0 0 1rem;padding:.75rem 0;overflow-x:auto;scrollbar-width:none;background:#fff;border-bottom:1px solid rgb(0 0 0/.08)}.dark .changelog-filters{background:#0a0a0a;border-bottom-color:rgb(255 255 255/.08)}.changelog-filters button{flex:none;white-space:nowrap;border:1px solid rgb(0 0 0/.12);border-radius:.375rem;padding:.25rem .75rem;font-size:.875rem;line-height:1.25rem;color:inherit;background:0 0;cursor:pointer}.dark .changelog-filters button{border-color:rgb(255 255 255/.15)}.changelog-filters button[aria-pressed=true]{border-color:#0069a8;background:#0069a8;color:#fff}.changelog-filters .changelog-filters-clear{border-color:transparent;padding-inline:.5rem;opacity:.7}.changelog-category{margin:1.25rem 0 .25rem;font-size:.8125rem;font-weight:600;opacity:.65}[data-changelog-category]:first-child .changelog-category{margin-top:0}.update.changelog-update-hidden{display:none}.ph-rc{--rc-tokens:#0069a8;--rc-waiting:#eb6834;--rc-failures:#1baf7a;--rc-ink:#0b0b0b;--rc-ink-2:#52514e;--rc-muted:#898781;--rc-grid:#e1e0d9;--rc-base:#c3c2b7;--rc-band:rgba(0, 105, 168, 0.07);--rc-band-edge:rgba(0, 105, 168, 0.28);--rc-surface:#ffffff;--rc-raised:#f6f6f4;--rc-ring:rgba(11, 11, 11, 0.1);margin:1.25rem 0;font-size:.8125rem;color:var(--rc-ink)}.dark .ph-rc{--rc-tokens:#2a9fd6;--rc-waiting:#d95926;--rc-failures:#199e70;--rc-ink:#f0efec;--rc-ink-2:#c3c2b7;--rc-muted:#898781;--rc-grid:#2c2c2a;--rc-base:#383835;--rc-band:rgba(42, 159, 214, 0.09);--rc-band-edge:rgba(42, 159, 214, 0.35);--rc-surface:#0a0a0a;--rc-raised:#161616;--rc-ring:rgba(255, 255, 255, 0.1)}.ph-rc-tabs{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.75rem}.ph-rc-tabs button{background:0 0;color:var(--rc-ink-2);padding:.3rem .65rem;font:inherit;cursor:pointer}.ph-rc-tabs button:hover{color:var(--rc-ink);background:var(--rc-raised)}.ph-rc-tabs .ph-rc-tab-on{border-color:var(--rc-tokens);background:var(--rc-raised)}.ph-rc-formula,.ph-rc-mix{color:var(--rc-ink-2);margin-bottom:.5rem}.ph-rc-formula,.ph-rc-tabs button{border:1px solid var(--rc-ring);border-radius:.375rem}.ph-rc-formula{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .45rem;margin-bottom:.6rem;padding:.55rem .75rem}.ph-rc-formula strong,.ph-rc-tabs .ph-rc-tab-on{color:var(--rc-ink);font-weight:600}.ph-rc-legend span,.ph-rc-term{display:inline-flex;align-items:center}.ph-rc-term{gap:.35rem;color:var(--rc-ink)}.ph-rc-legend{display:flex;flex-wrap:wrap;gap:.35rem 1rem;color:var(--rc-ink-2);margin-bottom:.75rem}.ph-rc-legend span{gap:.4rem}.ph-rc-swatch{display:inline-block;width:.7rem;height:.7rem;border-radius:3px;flex:none}.ph-rc-tokens{background:var(--rc-tokens)}.ph-rc-waiting{background:var(--rc-waiting)}.ph-rc-failures{background:var(--rc-failures)}.ph-rc-band-swatch{background:var(--rc-band);box-shadow:inset 0 0 0 1px var(--rc-band-edge)}.ph-rc-head,.ph-rc-row{display:grid;grid-template-columns:minmax(8rem,13rem) 1fr 6.5rem;gap:.75rem;align-items:center;border-bottom:1px solid var(--rc-grid)}.ph-rc-head{color:var(--rc-muted);font-size:.75rem;padding-bottom:.35rem}.ph-rc-row{padding:.55rem 0}.ph-rc-you{background:var(--rc-raised);box-shadow:-.5rem 0 0 var(--rc-raised),.5rem 0 0 var(--rc-raised)}.ph-rc-name{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.ph-rc-name strong{font-weight:600}.ph-rc-name span{color:var(--rc-muted);font-size:.7rem;line-height:1.3;direction:ltr;unicode-bidi:isolate}.ph-rc-track{position:relative;height:1.5rem;width:calc(100% - 3.75rem)}.ph-rc-controls input[type=range],.ph-rc-curve,.ph-rc-sharebar,.ph-rc-track{direction:ltr}.ph-rc-band{position:absolute;top:-.55rem;bottom:-.55rem;background:var(--rc-band);border-left:1px dashed var(--rc-band-edge);border-right:1px dashed var(--rc-band-edge)}.ph-rc-bar{position:absolute;inset:.3rem 0;display:flex;align-items:center}.ph-rc-seg{height:.9rem;margin-right:2px;flex:none;min-width:2px}.ph-rc-seg:first-child{border-radius:4px 0 0 4px}.ph-rc-seg:nth-last-child(2){border-radius:0 4px 4px 0;margin-right:.4rem}.ph-rc-tip b,.ph-rc-total{font-variant-numeric:tabular-nums}.ph-rc-total{color:var(--rc-ink-2);white-space:nowrap;font-size:.75rem}.ph-rc-tip{position:absolute;top:1.7rem;transform:translateX(-50%);z-index:5;min-width:12rem;background:var(--rc-surface);color:var(--rc-ink);border:1px solid var(--rc-ring);border-radius:.375rem;padding:.5rem .65rem;box-shadow:0 6px 20px rgba(0,0,0,.12);pointer-events:none}.ph-rc-tip-left{transform:translateX(-100%)}.ph-rc-tip>div{display:flex;align-items:center;gap:.4rem;color:var(--rc-ink-2);margin-top:.2rem}.ph-rc-tip b{margin-left:auto;color:var(--rc-ink)}.ph-rc-tip .ph-rc-tip-on{color:var(--rc-ink);font-weight:600}.ph-rc-tip-sum{border-top:1px solid var(--rc-grid);padding-top:.3rem}.ph-rc-share{display:flex;flex-direction:column;gap:.25rem}.ph-rc-controls b,.ph-rc-num{font-variant-numeric:tabular-nums}.ph-rc-num{text-align:right;direction:ltr;unicode-bidi:isolate}.ph-rc-share .ph-rc-num{font-weight:600;font-size:.875rem}.ph-rc-sharebar{height:.35rem;border-radius:2px;background:var(--rc-grid);overflow:hidden}.ph-rc-sharebar div{height:100%;background:var(--rc-tokens);border-radius:2px}.ph-rc-axis{color:var(--rc-muted);font-size:.72rem;margin-top:.5rem}.ph-rc-play{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.25rem}.ph-rc-controls{display:flex;flex-direction:column;gap:.6rem}.ph-rc-controls label,.ph-rc-summary{display:flex;flex-direction:column;gap:.2rem}.ph-rc-controls label span{color:var(--rc-ink-2)}.ph-rc-controls b{color:var(--rc-ink);font-weight:600}.ph-rc-controls input[type=range]{width:100%;accent-color:var(--rc-tokens)}.ph-rc-summary{gap:.5rem}.ph-rc-controls label span,.ph-rc-hero{display:flex;justify-content:space-between}.ph-rc-hero{align-items:baseline}.ph-rc-hero span{color:var(--rc-ink-2)}.ph-rc-hero strong{font-size:2rem;font-weight:600;line-height:1}.ph-rc-curve{width:100%;height:auto;overflow:visible}.ph-rc-band-fill{fill:var(--rc-band)}.ph-rc-baseline{stroke:var(--rc-base);stroke-width:1}.ph-rc-tick{fill:var(--rc-muted);font-size:10px}.ph-rc-line{fill:none;stroke:var(--rc-ink-2);stroke-width:2}.ph-rc-dot-other,.ph-rc-dot-you{fill:var(--rc-muted);stroke:var(--rc-surface);stroke-width:2}.ph-rc-dot-you{fill:var(--rc-tokens)}.ph-rc-dot-label{fill:var(--rc-ink);font-size:11px;font-weight:600}.ph-rc-caption{color:var(--rc-muted);font-size:.72rem;margin-top:-.25rem}.ph-rc-levers{border-top:1px solid var(--rc-grid);padding-top:.5rem}.ph-rc-levers-title{color:var(--rc-muted);font-size:.72rem;margin-bottom:.25rem}.ph-rc-levers>div:not(.ph-rc-levers-title){display:flex;justify-content:space-between;padding:.15rem 0;color:var(--rc-ink-2)}.ph-rc-levers b{color:var(--rc-ink);font-variant-numeric:tabular-nums}@media (max-width:640px){.ph-rc-play{grid-template-columns:1fr}.ph-rc-head,.ph-rc-row{grid-template-columns:1fr 4.5rem}.ph-rc-head>span:nth-child(2){display:none}.ph-rc-track{grid-column:1/-1;grid-row:2}}"}],"page":{"pagePath":"v1/api-reference/endpoint/anthropic-messages","slug":"/v1/api-reference/endpoint/anthropic-messages","pageMetadata":{"title":"Create a message","sidebarTitle":"Create a message (Anthropic)","openapi":"openapi/v1/openapi.yaml POST /messages","description":"Anthropic-compatible Messages endpoint at /v1/messages.","og:image":"https://phaseo.app/og/dynamic?title=Create%20a%20message\u0026description=Anthropic-compatible%20Messages%20endpoint%20at%20/v1/messages.\u0026pathname=/docs/v1/api-reference/endpoint/anthropic-messages","href":"/v1/api-reference/endpoint/anthropic-messages"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Anthropic-compatible Messages endpoint at /v1/messages.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`/v1/messages`}),` accepts Anthropic Messages API payloads and returns Anthropic-formatted responses.`]}),`\n`,_jsx(Heading,{level:`2`,id:`streaming`,children:`Streaming`}),`\n`,_jsxs(_components.p,{children:[`Set `,_jsx(_components.code,{children:`stream: true`}),` to receive server-sent events in Anthropic format (`,_jsx(_components.code,{children:`message_start`}),`, `,_jsx(_components.code,{children:`content_block_*`}),`, `,_jsx(_components.code,{children:`message_delta`}),`, `,_jsx(_components.code,{children:`message_stop`}),`).`]}),`\n`,_jsx(Heading,{level:`2`,id:`mid-conversation-system-messages`,children:`Mid-conversation system messages`}),`\n`,_jsxs(_components.p,{children:[`Add a `,_jsx(_components.code,{children:`role: \"system\"`}),` message to `,_jsx(_components.code,{children:`messages`}),` for an instruction that applies from that point in the conversation. The top-level `,_jsx(_components.code,{children:`system`}),` field stays the same, so a cached prefix still hits.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.phaseo.app/v1/messages`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer YOUR_API_KEY\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"model\": \"anthropic/claude-opus-5.5\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"max_tokens\": 512,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"system\": \"You are a code review assistant.\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"messages\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` { \"role\": \"user\", \"content\": \"Review process() in utils.py.\" },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` { \"role\": \"assistant\", \"content\": \"The loop is fine; the regex is compiled on every call.\" },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` { \"role\": \"user\", \"content\": \"Now review the code that calls it.\" },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` { \"role\": \"system\", \"content\": \"From now on, include type annotations in every suggestion.\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`A system message takes a string or text blocks. It must come straight after a user turn (or an assistant turn ending in a server tool result) and be the last message or be followed by an assistant turn. Other positions return a 400.`}),`\n`,_jsx(_components.li,{children:`Claude Fable 5 and 5.1, Mythos 5 and 5.1, Opus 4.8, Opus 5 and 5.5, Sonnet 5.5 and Haiku 5.5 receive it in place. Other Claude models, including Sonnet 5, and every Claude model on Microsoft Foundry receive it as part of the top-level system prompt. Other providers receive it as a system message, the same as one sent to Chat Completions.`}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`clear_at`}),`, `,_jsx(_components.code,{children:`output_config`}),`, and `,_jsx(_components.code,{children:`tool_addition`}),` or `,_jsx(_components.code,{children:`tool_removal`}),` blocks are not supported.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`notes`,children:`Notes`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Anthropic tool-use fields are supported.`}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`stream: true`}),` also works with tool loops. For gateway-managed server tools, Phaseo may materialize the upstream tool-call turn, continue the loop, and re-emit a synthetic stream.`]}),`\n`,_jsxs(_components.li,{children:[`The Anthropic-native web search tool shape is also accepted directly in `,_jsx(_components.code,{children:`tools`}),`, for example `,_jsx(_components.code,{children:`type: \"web_search_20250305\"`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`X-Phaseo-Strictness`}),` header controls how unsupported parameters are handled.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`server-tools`,children:`Server tools`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`/v1/messages`}),` also supports these gateway-managed server tools:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`gateway:datetime`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`phaseo:web_search`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`phaseo:web_fetch`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`phaseo:advisor`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`phaseo:image_generation`})}),`\n`]}),`\n`,_jsx(_components.p,{children:`Phaseo rewrites these tools to Anthropic-compatible format upstream, executes them server-side, and continues the tool loop.`}),`\n`,_jsx(Heading,{level:`2`,id:`native-provider-web-search`,children:`Native provider web search`}),`\n`,_jsx(_components.p,{children:`When a compatible Anthropic model/provider pair supports native web search, you can also pass the native tool definition through directly:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`19`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`19`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.phaseo.app/v1/messages`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer YOUR_API_KEY\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"model\": \"anthropic/claude-sonnet-4\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"max_tokens\": 512,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"messages\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` { \"role\": \"user\", \"content\": \"Find the latest Anthropic web search guidance.\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"tools\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"type\": \"web_search_20250305\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"name\": \"web_search\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"max_uses\": 3,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"allowed_domains\": [\"docs.anthropic.com\"]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"tool_choice\": { \"type\": \"tool\", \"name\": \"web_search\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Provider routing still filters for `,_jsx(_components.code,{children:`web_search_options`}),` support before execution.`]}),`\n`,_jsx(Heading,{level:`3`,id:`datetime-example`,children:`Datetime example`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`18`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`18`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.phaseo.app/v1/messages`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer YOUR_API_KEY\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"model\": \"anthropic/claude-sonnet-4\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"max_tokens\": 512,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"stream\": false,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"messages\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` { \"role\": \"user\", \"content\": \"What time is it in America/New_York right now?\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"tools\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"type\": \"gateway:datetime\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"parameters\": { \"timezone\": \"America/New_York\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"tool_choice\": { \"type\": \"auto\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`When used, the `,_jsx(_components.code,{children:`usage.server_tool_use.*`}),` counters report server-tool invocations.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create a message","sidebarTitle":"Create a message (Anthropic)","openapi":"openapi/v1/openapi.yaml POST /messages","description":"Anthropic-compatible Messages endpoint at /v1/messages.","og:image":"https://phaseo.app/og/dynamic?title=Create%20a%20message\u0026description=Anthropic-compatible%20Messages%20endpoint%20at%20/v1/messages.\u0026pathname=/docs/v1/api-reference/endpoint/anthropic-messages","href":"/v1/api-reference/endpoint/anthropic-messages"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Streaming","slug":"streaming","depth":2,"children":[]},{"title":"Mid-conversation system messages","slug":"mid-conversation-system-messages","depth":2,"children":[]},{"title":"Notes","slug":"notes","depth":2,"children":[]},{"title":"Server tools","slug":"server-tools","depth":2,"children":[]},{"title":"Native provider web search","slug":"native-provider-web-search","depth":2,"children":[{"title":"Datetime example","slug":"datetime-example","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"servers":["00a8730e-2e87-4594-b51e-bdbaf6f5289e","82b05335-9ade-42a8-9178-f533b02c539a","5a991c06-0e70-4bb7-8430-462fe394cbfa"],"tags":["Gateway"],"operationId":"createAnthropicMessage","summary":"Create message","description":"Anthropic-compatible Messages endpoint at /v1/messages.","requestBody":"e0b6884e-a41b-4876-b2cb-5cdf3ec69c4b","responses":{"200":"3a5fcf5e-2806-4561-b3ec-f6c78d10b20a"},"method":"post","type":"path","security":["7175321d-db20-40f8-904b-8c57cc025120"],"path":"/messages","baseUrlOptions":["https://api.phaseo.app/v1","https://eu.api.phaseo.app/v1","https://us.api.phaseo.app/v1"],"title":"Create message","codeSamples":[],"requestExampleLanguages":["javascript","python","bash","go","java","php","ruby"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.model":"anthropic/claude-sonnet-4","body.messages.items.0.oneOf.0.role":"user","body.messages.items.0.oneOf.0.content.oneOf.0":"What time is it in America/New_York right now?","body.max_tokens":512,"body.tools.items.0.oneOf.1.type":"gateway:datetime","body.tools.items.0.oneOf.1.parameters.timezone":"America/New_York","body.tool_choice.oneOf.0":{"type":"auto"},"body.stream":false}]},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"An optional top-level field sent as `null` is treated as unset, the same as leaving it out.","required":["model","messages","max_tokens"],"properties":{"model":{"type":"string","isRequired":true,"uniqueKey":"model","typeLabel":"string"},"messages":{"type":"array","minItems":1,"items":{"oneOf":[{"type":"object","required":["role","content"],"properties":{"role":{"type":"string","enum":["user","assistant"],"isRequired":true,"uniqueKey":"messages.items.[INDEX].oneOf.0.role","typeLabel":"enum\u003cstring>"},"content":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["text","image","tool_use","tool_result"],"uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1.items.[INDEX].text","typeLabel":"string"},"cache_control":{"type":"object","description":"Prompt cache control. Use type ephemeral with an optional ttl of 5m or 1h. scope applies only to a top-level Claude cache policy. Amazon Bedrock and Google Vertex AI cache Claude 3.7 Sonnet, 3.5 Sonnet and 3 Opus for 5 minutes only; there the ttl is removed and a removed 1h is reported in X-Phaseo-Dropped-Params as cache_control.ttl.","properties":{"type":{"type":"string","uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1.items.[INDEX].cache_control.type","typeLabel":"string"},"ttl":{"type":"string","uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1.items.[INDEX].cache_control.ttl","typeLabel":"string"},"scope":{"type":"string","uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1.items.[INDEX].cache_control.scope","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1.items.[INDEX].cache_control","typeLabel":"object"},"source":{"type":"object","properties":{"type":{"type":"string","uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1.items.[INDEX].source.type","typeLabel":"string"},"media_type":{"type":"string","uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1.items.[INDEX].source.media_type","typeLabel":"string"},"data":{"type":"string","uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1.items.[INDEX].source.data","typeLabel":"string"},"url":{"type":"string","uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1.items.[INDEX].source.url","typeLabel":"string"}},"uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1.items.[INDEX].source","typeLabel":"object"},"id":{"type":"string","uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1.items.[INDEX].name","typeLabel":"string"},"input":{"type":"object","uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1.items.[INDEX].input","typeLabel":"object"},"tool_use_id":{"type":"string","uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1.items.[INDEX].tool_use_id","typeLabel":"string"},"content":{"type":"string","uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1.items.[INDEX].content","typeLabel":"string"}},"uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"messages.items.[INDEX].oneOf.0.content.oneOf.1","typeLabel":"object[]"}],"isRequired":true,"uniqueKey":"messages.items.[INDEX].oneOf.0.content","typeLabel":"string | object[]"}},"uniqueKey":"messages.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["role","content"],"properties":{"role":{"type":"string","description":"Use `system` for an instruction that applies from this point in the conversation. A system message takes a string or text blocks, must come straight after a user turn (or an assistant turn ending in a server tool result), and must be the last message or be followed by an assistant turn.","enum":["system"],"isRequired":true,"uniqueKey":"messages.items.[INDEX].oneOf.1.role","typeLabel":"enum\u003cstring>"},"content":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"messages.items.[INDEX].oneOf.1.content.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"type":"string","enum":["text"],"isRequired":true,"uniqueKey":"messages.items.[INDEX].oneOf.1.content.oneOf.1.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","isRequired":true,"uniqueKey":"messages.items.[INDEX].oneOf.1.content.oneOf.1.items.[INDEX].text","typeLabel":"string"},"cache_control":{"type":"object","description":"Prompt cache control. Use type ephemeral with an optional ttl of 5m or 1h. scope applies only to a top-level Claude cache policy. Amazon Bedrock and Google Vertex AI cache Claude 3.7 Sonnet, 3.5 Sonnet and 3 Opus for 5 minutes only; there the ttl is removed and a removed 1h is reported in X-Phaseo-Dropped-Params as cache_control.ttl.","properties":{"type":{"type":"string","uniqueKey":"messages.items.[INDEX].oneOf.1.content.oneOf.1.items.[INDEX].cache_control.type","typeLabel":"string"},"ttl":{"type":"string","uniqueKey":"messages.items.[INDEX].oneOf.1.content.oneOf.1.items.[INDEX].cache_control.ttl","typeLabel":"string"},"scope":{"type":"string","uniqueKey":"messages.items.[INDEX].oneOf.1.content.oneOf.1.items.[INDEX].cache_control.scope","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"messages.items.[INDEX].oneOf.1.content.oneOf.1.items.[INDEX].cache_control","typeLabel":"object"}},"uniqueKey":"messages.items.[INDEX].oneOf.1.content.oneOf.1.items.[INDEX]","typeLabel":"object"},"minItems":1,"isRequired":true,"uniqueKey":"messages.items.[INDEX].oneOf.1.content.oneOf.1","typeLabel":"object[]"}],"isRequired":true,"uniqueKey":"messages.items.[INDEX].oneOf.1.content","typeLabel":"string | object[]"}},"additionalProperties":false,"uniqueKey":"messages.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"messages.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"messages","typeLabel":"object[]"},"max_tokens":{"type":"integer","minimum":1,"isRequired":true,"uniqueKey":"max_tokens","typeLabel":"integer"},"models":{"type":"array","minItems":1,"maxItems":25,"items":{"type":"string","minLength":1,"uniqueKey":"models.items.[INDEX]","typeLabel":"string"},"description":"Optional ordered fallback models tried after `model`. `model` is required and is always the primary model. When an attempt fails with `429`, `500`, `502`, `503`, or `504`, the next entry is tried; other errors are returned unchanged. Accepts up to 25 model IDs or presets; duplicates and entries equal to `model` are ignored. Each attempt is validated, logged, and billed as its own request, and the response `model` field and routing trace show the model that served the request. Streaming requests fall back only before the first byte, and video and music jobs fall back only at submission. Batch, realtime, and council requests reject `models`. Fallbacks set on a dynamic route take precedence, and `phaseo/auto` cannot be combined with `models`.","example":["anthropic/claude-sonnet-5-5","google/gemini-2.5-flash"],"uniqueKey":"models","typeLabel":"string[]"},"prompt":{"type":"object","description":"Fills in the prompt template saved on a preset. Leave out model or set it to the same reference, and send an empty conversation or the turns to add after the template.","required":["id"],"properties":{"id":{"type":"string","description":"Preset reference starting with @, such as @support-triage or @publisher/support-triage.","isRequired":true,"uniqueKey":"prompt.id","typeLabel":"string"},"variables":{"type":"object","additionalProperties":true,"description":"Values for the template variables. Image variables take an https URL, a data URL or an image part.","uniqueKey":"prompt.variables","typeLabel":"object"},"version":{"type":"string","maxLength":64,"description":"Runs this published version of the preset instead of the current one: its models, parameters and template. Use a version label such as v3, 1.2.0 or 2026.10.27, or a label such as production. The same as setting model to @support-triage@production.","uniqueKey":"prompt.version","typeLabel":"string"}},"uniqueKey":"prompt","typeLabel":"object"},"system":{"oneOf":[{"type":"string","uniqueKey":"system.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["text"],"uniqueKey":"system.oneOf.1.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","uniqueKey":"system.oneOf.1.items.[INDEX].text","typeLabel":"string"},"cache_control":{"type":"object","description":"Prompt cache control. Use type ephemeral with an optional ttl of 5m or 1h. scope applies only to a top-level Claude cache policy. Amazon Bedrock and Google Vertex AI cache Claude 3.7 Sonnet, 3.5 Sonnet and 3 Opus for 5 minutes only; there the ttl is removed and a removed 1h is reported in X-Phaseo-Dropped-Params as cache_control.ttl.","properties":{"type":{"type":"string","uniqueKey":"system.oneOf.1.items.[INDEX].cache_control.type","typeLabel":"string"},"ttl":{"type":"string","uniqueKey":"system.oneOf.1.items.[INDEX].cache_control.ttl","typeLabel":"string"},"scope":{"type":"string","uniqueKey":"system.oneOf.1.items.[INDEX].cache_control.scope","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"system.oneOf.1.items.[INDEX].cache_control","typeLabel":"object"}},"uniqueKey":"system.oneOf.1.items.[INDEX]","typeLabel":"object"},"uniqueKey":"system.oneOf.1","typeLabel":"object[]"}],"uniqueKey":"system","typeLabel":"string | object[]"},"service_tier":{"type":"string","description":"Selects a supported routing or pricing tier on compatible text APIs.","enum":["standard","default","fast","ultrafast","priority","flex","batch","auto","standard_only"],"uniqueKey":"service_tier","typeLabel":"enum\u003cstring>"},"temperature":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"temperature","typeLabel":"number"},"top_p":{"type":"number","minimum":0,"maximum":1,"uniqueKey":"top_p","typeLabel":"number"},"top_k":{"type":"integer","minimum":1,"uniqueKey":"top_k","typeLabel":"integer"},"tools":{"type":"array","description":"Anthropic-compatible tools plus gateway-managed server tools.\n","items":{"oneOf":[{"type":"object","required":["name"],"properties":{"name":{"type":"string","isRequired":true,"uniqueKey":"tools.items.[INDEX].oneOf.0.name","typeLabel":"string"},"async":{"type":"boolean","description":"Lets supported OpenAI models continue while the caller executes this tool. Ignored when routed to other providers.","uniqueKey":"tools.items.[INDEX].oneOf.0.async","typeLabel":"boolean"},"description":{"type":"string","uniqueKey":"tools.items.[INDEX].oneOf.0.description","typeLabel":"string"},"input_schema":{"type":"object","uniqueKey":"tools.items.[INDEX].oneOf.0.input_schema","typeLabel":"object"}},"uniqueKey":"tools.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"Gateway-managed server tool. The gateway executes the datetime lookup and injects the result back into the model tool loop.\n","required":["type"],"properties":{"type":{"type":"string","enum":["phaseo:datetime","gateway:datetime"],"isRequired":true,"uniqueKey":"tools.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"parameters":{"type":"object","properties":{"timezone":{"type":"string","description":"IANA timezone name (for example Europe/London).","uniqueKey":"tools.items.[INDEX].oneOf.1.parameters.timezone","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"tools.items.[INDEX].oneOf.1.parameters","typeLabel":"object"},"timezone":{"type":"string","description":"Legacy shortcut for default timezone (IANA).","uniqueKey":"tools.items.[INDEX].oneOf.1.timezone","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"tools.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","description":"Gateway-managed server tool. The gateway executes a web search and injects normalized search results back into the model tool loop.\n","required":["type"],"properties":{"type":{"type":"string","enum":["phaseo:web_search","gateway:web_search"],"isRequired":true,"uniqueKey":"tools.items.[INDEX].oneOf.2.type","typeLabel":"enum\u003cstring>"},"parameters":{"type":"object","properties":{"engine":{"type":"string","enum":["auto","native","exa","firecrawl","parallel","perplexity","tinyfish"],"uniqueKey":"tools.items.[INDEX].oneOf.2.parameters.engine","typeLabel":"enum\u003cstring>"},"max_results":{"type":"integer","minimum":1,"maximum":25,"uniqueKey":"tools.items.[INDEX].oneOf.2.parameters.max_results","typeLabel":"integer"},"language":{"type":"string","uniqueKey":"tools.items.[INDEX].oneOf.2.parameters.language","typeLabel":"string"},"page":{"type":"integer","minimum":0,"maximum":10,"uniqueKey":"tools.items.[INDEX].oneOf.2.parameters.page","typeLabel":"integer"},"include_text":{"type":"boolean","uniqueKey":"tools.items.[INDEX].oneOf.2.parameters.include_text","typeLabel":"boolean"},"include_highlights":{"type":"boolean","uniqueKey":"tools.items.[INDEX].oneOf.2.parameters.include_highlights","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"tools.items.[INDEX].oneOf.2.parameters","typeLabel":"object"},"max_results":{"type":"integer","minimum":1,"maximum":25,"uniqueKey":"tools.items.[INDEX].oneOf.2.max_results","typeLabel":"integer"},"engine":{"type":"string","enum":["auto","native","exa","firecrawl","parallel","perplexity","tinyfish"],"uniqueKey":"tools.items.[INDEX].oneOf.2.engine","typeLabel":"enum\u003cstring>"},"language":{"type":"string","uniqueKey":"tools.items.[INDEX].oneOf.2.language","typeLabel":"string"},"page":{"type":"integer","minimum":0,"maximum":10,"uniqueKey":"tools.items.[INDEX].oneOf.2.page","typeLabel":"integer"},"include_text":{"type":"boolean","uniqueKey":"tools.items.[INDEX].oneOf.2.include_text","typeLabel":"boolean"},"include_highlights":{"type":"boolean","uniqueKey":"tools.items.[INDEX].oneOf.2.include_highlights","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"tools.items.[INDEX].oneOf.2","typeLabel":"object"},{"type":"object","description":"Gateway-managed server tool. The gateway fetches one HTTP(S) page, reduces it to bounded text, and injects the result back into the model tool loop.\n","required":["type"],"properties":{"type":{"type":"string","enum":["phaseo:web_fetch","gateway:web_fetch"],"isRequired":true,"uniqueKey":"tools.items.[INDEX].oneOf.3.type","typeLabel":"enum\u003cstring>"},"parameters":{"type":"object","properties":{"max_chars":{"type":"integer","minimum":1,"maximum":100000,"uniqueKey":"tools.items.[INDEX].oneOf.3.parameters.max_chars","typeLabel":"integer"}},"additionalProperties":false,"uniqueKey":"tools.items.[INDEX].oneOf.3.parameters","typeLabel":"object"},"max_chars":{"type":"integer","minimum":1,"maximum":100000,"uniqueKey":"tools.items.[INDEX].oneOf.3.max_chars","typeLabel":"integer"}},"additionalProperties":false,"uniqueKey":"tools.items.[INDEX].oneOf.3","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["phaseo:subagent"],"isRequired":true,"uniqueKey":"tools.items.[INDEX].oneOf.4.type","typeLabel":"enum\u003cstring>"},"parameters":{"type":"object","additionalProperties":true,"uniqueKey":"tools.items.[INDEX].oneOf.4.parameters","typeLabel":"object"}},"uniqueKey":"tools.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["phaseo:fusion"],"isRequired":true,"uniqueKey":"tools.items.[INDEX].oneOf.5.type","typeLabel":"enum\u003cstring>"},"parameters":{"type":"object","required":["analysis_models"],"properties":{"analysis_models":{"type":"array","minItems":2,"maxItems":8,"items":{"type":"string","uniqueKey":"tools.items.[INDEX].oneOf.5.parameters.analysis_models.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"tools.items.[INDEX].oneOf.5.parameters.analysis_models","typeLabel":"string[]"},"model":{"type":"string","uniqueKey":"tools.items.[INDEX].oneOf.5.parameters.model","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"tools.items.[INDEX].oneOf.5.parameters","typeLabel":"object"}},"uniqueKey":"tools.items.[INDEX].oneOf.5","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["phaseo:search_models"],"isRequired":true,"uniqueKey":"tools.items.[INDEX].oneOf.6.type","typeLabel":"enum\u003cstring>"},"parameters":{"type":"object","properties":{"max_results":{"type":"integer","minimum":1,"maximum":20,"uniqueKey":"tools.items.[INDEX].oneOf.6.parameters.max_results","typeLabel":"integer"}},"uniqueKey":"tools.items.[INDEX].oneOf.6.parameters","typeLabel":"object"}},"uniqueKey":"tools.items.[INDEX].oneOf.6","typeLabel":"object"}],"uniqueKey":"tools.items.[INDEX]","typeLabel":"object"},"uniqueKey":"tools","typeLabel":"object[]"},"tool_choice":{"oneOf":[{"type":"object","description":"Anthropic tool choice object/string. Gateway-managed server tool names are also accepted and rewritten by the gateway.\n","uniqueKey":"tool_choice.oneOf.0","typeLabel":"object"},{"type":"string","description":"Anthropic tool choice object/string. Gateway-managed server tool names are also accepted and rewritten by the gateway.\n","uniqueKey":"tool_choice.oneOf.1","typeLabel":"string"}],"uniqueKey":"tool_choice","typeLabel":"object | string"},"plugins":{"type":"array","description":"Gateway plugins for this request. `web` adds web search and `web-fetch` adds page fetching to any model; `response-healing` repairs malformed JSON in buffered structured-output responses. Workspace and preset defaults are merged with this list. An unknown plugin id returns 400 `unknown_gateway_plugin`.\n","items":{"oneOf":[{"type":"object","description":"Adds the `phaseo:web_search` server tool to the request, so any model can search the web. The request runs, and searches are counted and billed, exactly as with a `phaseo:web_search` tool. If the request already has a web search tool, the plugin adds nothing. Other options are ignored.\n","required":["id"],"properties":{"id":{"type":"string","enum":["web"],"isRequired":true,"uniqueKey":"plugins.items.[INDEX].oneOf.0.id","typeLabel":"enum\u003cstring>"},"enabled":{"type":"boolean","default":true,"uniqueKey":"plugins.items.[INDEX].oneOf.0.enabled","typeLabel":"boolean"},"engine":{"type":"string","enum":["auto","native","exa","firecrawl","parallel","perplexity","tinyfish"],"uniqueKey":"plugins.items.[INDEX].oneOf.0.engine","typeLabel":"enum\u003cstring>"},"max_results":{"type":"integer","minimum":1,"maximum":25,"uniqueKey":"plugins.items.[INDEX].oneOf.0.max_results","typeLabel":"integer"},"max_uses":{"type":"integer","minimum":1,"uniqueKey":"plugins.items.[INDEX].oneOf.0.max_uses","typeLabel":"integer"},"search_context_size":{"type":"string","enum":["low","medium","high"],"uniqueKey":"plugins.items.[INDEX].oneOf.0.search_context_size","typeLabel":"enum\u003cstring>"},"include_domains":{"type":"array","items":{"type":"string","uniqueKey":"plugins.items.[INDEX].oneOf.0.include_domains.items.[INDEX]","typeLabel":"string"},"uniqueKey":"plugins.items.[INDEX].oneOf.0.include_domains","typeLabel":"string[]"},"exclude_domains":{"type":"array","items":{"type":"string","uniqueKey":"plugins.items.[INDEX].oneOf.0.exclude_domains.items.[INDEX]","typeLabel":"string"},"uniqueKey":"plugins.items.[INDEX].oneOf.0.exclude_domains","typeLabel":"string[]"}},"uniqueKey":"plugins.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"Adds the `phaseo:web_fetch` server tool to the request, so any model can read web pages. The request runs, and fetches are counted and billed, exactly as with a `phaseo:web_fetch` tool. If the request already has a web fetch tool, the plugin adds nothing.\n","required":["id"],"properties":{"id":{"type":"string","enum":["web-fetch"],"isRequired":true,"uniqueKey":"plugins.items.[INDEX].oneOf.1.id","typeLabel":"enum\u003cstring>"},"enabled":{"type":"boolean","default":true,"uniqueKey":"plugins.items.[INDEX].oneOf.1.enabled","typeLabel":"boolean"},"engine":{"type":"string","enum":["auto","native","direct","exa","firecrawl","parallel"],"uniqueKey":"plugins.items.[INDEX].oneOf.1.engine","typeLabel":"enum\u003cstring>"},"max_uses":{"type":"integer","minimum":1,"uniqueKey":"plugins.items.[INDEX].oneOf.1.max_uses","typeLabel":"integer"},"max_content_tokens":{"type":"integer","minimum":1,"maximum":100000,"uniqueKey":"plugins.items.[INDEX].oneOf.1.max_content_tokens","typeLabel":"integer"},"allowed_domains":{"type":"array","items":{"type":"string","uniqueKey":"plugins.items.[INDEX].oneOf.1.allowed_domains.items.[INDEX]","typeLabel":"string"},"uniqueKey":"plugins.items.[INDEX].oneOf.1.allowed_domains","typeLabel":"string[]"},"blocked_domains":{"type":"array","items":{"type":"string","uniqueKey":"plugins.items.[INDEX].oneOf.1.blocked_domains.items.[INDEX]","typeLabel":"string"},"uniqueKey":"plugins.items.[INDEX].oneOf.1.blocked_domains","typeLabel":"string[]"}},"uniqueKey":"plugins.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","description":"Repairs malformed JSON in buffered responses that requested `json_object` or `json_schema` output. Skipped on streams.\n","required":["id"],"properties":{"id":{"type":"string","enum":["response-healing"],"isRequired":true,"uniqueKey":"plugins.items.[INDEX].oneOf.2.id","typeLabel":"enum\u003cstring>"},"enabled":{"type":"boolean","default":true,"uniqueKey":"plugins.items.[INDEX].oneOf.2.enabled","typeLabel":"boolean"},"mode":{"type":"string","enum":["safe","strict"],"default":"safe","uniqueKey":"plugins.items.[INDEX].oneOf.2.mode","typeLabel":"enum\u003cstring>"}},"uniqueKey":"plugins.items.[INDEX].oneOf.2","typeLabel":"object"}],"uniqueKey":"plugins.items.[INDEX]","typeLabel":"object"},"uniqueKey":"plugins","typeLabel":"object[]"},"stream":{"type":"boolean","uniqueKey":"stream","typeLabel":"boolean"},"metadata":{"type":"object","additionalProperties":true,"uniqueKey":"metadata","typeLabel":"object"},"session_id":{"type":"string","maxLength":256,"description":"Unique identifier for grouping related requests (for example, a conversation or agent workflow) for observability.","uniqueKey":"session_id","typeLabel":"string"},"reasoning":{"type":"object","properties":{"effort":{"oneOf":[{"type":"string","enum":["none","minimal","low","medium","high","xhigh","max"],"description":"Reasoning effort. When omitted or null, `max_tokens`, `enabled` or the model's own default decides how much the model reasons.","uniqueKey":"reasoning.effort.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["none","minimal","low","medium","high","xhigh","max"],"description":"Reasoning effort. When omitted or null, `max_tokens`, `enabled` or the model's own default decides how much the model reasons.","uniqueKey":"reasoning.effort.oneOf.1","typeLabel":"null"}],"uniqueKey":"reasoning.effort","typeLabel":"enum\u003cstring> | null"},"mode":{"type":"string","enum":["standard","pro"],"uniqueKey":"reasoning.mode","typeLabel":"enum\u003cstring>"},"summary":{"type":"string","enum":["auto","concise","detailed"],"default":"auto","uniqueKey":"reasoning.summary","typeLabel":"enum\u003cstring>"},"enabled":{"type":"boolean","uniqueKey":"reasoning.enabled","typeLabel":"boolean"},"max_tokens":{"type":"integer","minimum":0,"uniqueKey":"reasoning.max_tokens","typeLabel":"integer"}},"uniqueKey":"reasoning","typeLabel":"object"},"context_management":{"type":"object","description":"Anthropic context editing. `edits` takes `clear_tool_uses_*` and `clear_thinking_*` strategies and is sent to Anthropic with its beta header. Other providers run the request without it and list `context_management` in `X-Phaseo-Dropped-Params`. Compaction edits (`compact_*`) return 400.","properties":{"edits":{"type":"array","items":{"type":"object","required":["type"],"properties":{"type":{"type":"string","isRequired":true,"uniqueKey":"context_management.edits.items.[INDEX].type","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"context_management.edits.items.[INDEX]","typeLabel":"object"},"uniqueKey":"context_management.edits","typeLabel":"object[]"}},"additionalProperties":true,"uniqueKey":"context_management","typeLabel":"object"},"user":{"type":"string","description":"End-user identifier, as on Chat Completions. Claude models receive it as `metadata.user_id` unless `metadata.user_id` is set.","uniqueKey":"user","typeLabel":"string"},"prompt_cache_key":{"oneOf":[{"type":"string","description":"Groups related requests so they stay on the provider that holds their prompt cache. Phaseo sends a hash of your workspace and this key upstream, never the raw key.","uniqueKey":"prompt_cache_key.oneOf.0","typeLabel":"string"},{"type":"null","description":"Groups related requests so they stay on the provider that holds their prompt cache. Phaseo sends a hash of your workspace and this key upstream, never the raw key.","uniqueKey":"prompt_cache_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"prompt_cache_key","typeLabel":"string | null"},"stop_sequences":{"type":"array","items":{"type":"string","uniqueKey":"stop_sequences.items.[INDEX]","typeLabel":"string"},"uniqueKey":"stop_sequences","typeLabel":"string[]"},"cache_control":{"type":"object","description":"Prompt cache control. Use type ephemeral with an optional ttl of 5m or 1h. scope applies only to a top-level Claude cache policy. Amazon Bedrock and Google Vertex AI cache Claude 3.7 Sonnet, 3.5 Sonnet and 3 Opus for 5 minutes only; there the ttl is removed and a removed 1h is reported in X-Phaseo-Dropped-Params as cache_control.ttl.","properties":{"type":{"type":"string","uniqueKey":"cache_control.type","typeLabel":"string"},"ttl":{"type":"string","uniqueKey":"cache_control.ttl","typeLabel":"string"},"scope":{"type":"string","uniqueKey":"cache_control.scope","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"cache_control","typeLabel":"object"},"provider_options":{"type":"object","description":"Optional provider-specific options.","properties":{"openai":{"type":"object","properties":{"context_management":{"type":"object","description":"Optional OpenAI context management configuration.","properties":{"type":{"type":"string","enum":["compaction"],"isRequired":true,"uniqueKey":"provider_options.openai.context_management.type","typeLabel":"enum\u003cstring>"},"compact_threshold":{"type":"number","uniqueKey":"provider_options.openai.context_management.compact_threshold","typeLabel":"number"}},"required":["type"],"uniqueKey":"provider_options.openai.context_management","typeLabel":"object"},"prompt_cache_retention":{"type":"string","uniqueKey":"provider_options.openai.prompt_cache_retention","typeLabel":"string"},"prompt_cache_options":{"type":"object","description":"Prompt cache mode and TTL for OpenAI and Azure OpenAI GPT-5.6 and later (ttl 30m, or 12h on OpenAI) and for DeepInfra (ttl 5m or 1h). Removed for other providers.","properties":{"mode":{"type":"string","enum":["implicit","explicit"],"uniqueKey":"provider_options.openai.prompt_cache_options.mode","typeLabel":"enum\u003cstring>"},"ttl":{"type":"string","description":"Minimum cache lifetime. OpenAI GPT-5.6 and later: 30m (default) or 12h; a request asking for 12h runs on OpenAI's Responses API. Azure OpenAI: 30m. DeepInfra: 5m or 1h. A route that cannot take 12h receives the request without it, and the removal is reported in X-Phaseo-Dropped-Params.","uniqueKey":"provider_options.openai.prompt_cache_options.ttl","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"provider_options.openai.prompt_cache_options","typeLabel":"object"}},"uniqueKey":"provider_options.openai","typeLabel":"object"},"anthropic":{"type":"object","properties":{"cache_control":{"type":"object","description":"Prompt cache control. Use type ephemeral with an optional ttl of 5m or 1h. scope applies only to a top-level Claude cache policy. Amazon Bedrock and Google Vertex AI cache Claude 3.7 Sonnet, 3.5 Sonnet and 3 Opus for 5 minutes only; there the ttl is removed and a removed 1h is reported in X-Phaseo-Dropped-Params as cache_control.ttl.","properties":{"type":{"type":"string","uniqueKey":"provider_options.anthropic.cache_control.type","typeLabel":"string"},"ttl":{"type":"string","uniqueKey":"provider_options.anthropic.cache_control.ttl","typeLabel":"string"},"scope":{"type":"string","uniqueKey":"provider_options.anthropic.cache_control.scope","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"provider_options.anthropic.cache_control","typeLabel":"object"}},"uniqueKey":"provider_options.anthropic","typeLabel":"object"},"xai":{"type":"object","properties":{"conversation_id":{"type":"string","description":"xAI conversation ID, sent as the x-grok-conv-id header.","uniqueKey":"provider_options.xai.conversation_id","typeLabel":"string"}},"uniqueKey":"provider_options.xai","typeLabel":"object"},"google":{"type":"object","properties":{"cache_control":{"type":"object","description":"Prompt cache control. Use type ephemeral with an optional ttl of 5m or 1h. scope applies only to a top-level Claude cache policy. Amazon Bedrock and Google Vertex AI cache Claude 3.7 Sonnet, 3.5 Sonnet and 3 Opus for 5 minutes only; there the ttl is removed and a removed 1h is reported in X-Phaseo-Dropped-Params as cache_control.ttl.","properties":{"type":{"type":"string","uniqueKey":"provider_options.google.cache_control.type","typeLabel":"string"},"ttl":{"type":"string","uniqueKey":"provider_options.google.cache_control.ttl","typeLabel":"string"},"scope":{"type":"string","uniqueKey":"provider_options.google.cache_control.scope","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"provider_options.google.cache_control","typeLabel":"object"},"cached_content":{"type":"string","uniqueKey":"provider_options.google.cached_content","typeLabel":"string"},"cache_ttl":{"type":"string","uniqueKey":"provider_options.google.cache_ttl","typeLabel":"string"}},"uniqueKey":"provider_options.google","typeLabel":"object"}},"uniqueKey":"provider_options","typeLabel":"object"},"usage":{"type":"boolean","uniqueKey":"usage","typeLabel":"boolean"},"meta":{"type":"boolean","uniqueKey":"meta","typeLabel":"boolean"},"echo_upstream_request":{"type":"boolean","uniqueKey":"echo_upstream_request","typeLabel":"boolean"},"debug":{"type":"object","description":"Gateway debug controls. These flags are never forwarded upstream.","properties":{"enabled":{"type":"boolean","uniqueKey":"debug.enabled","typeLabel":"boolean"},"return_upstream_request":{"type":"boolean","uniqueKey":"debug.return_upstream_request","typeLabel":"boolean"},"return_upstream_response":{"type":"boolean","uniqueKey":"debug.return_upstream_response","typeLabel":"boolean"},"trace":{"type":"boolean","uniqueKey":"debug.trace","typeLabel":"boolean"},"trace_level":{"type":"string","enum":["summary","full"],"uniqueKey":"debug.trace_level","typeLabel":"enum\u003cstring>"}},"uniqueKey":"debug","typeLabel":"object"},"provider":{"type":"object","description":"Provider routing preferences for gateway selection.","properties":{"order":{"type":"array","items":{"type":"string","uniqueKey":"provider.order.items.[INDEX]","typeLabel":"string"},"uniqueKey":"provider.order","typeLabel":"string[]"},"only":{"type":"array","items":{"type":"string","uniqueKey":"provider.only.items.[INDEX]","typeLabel":"string"},"uniqueKey":"provider.only","typeLabel":"string[]"},"ignore":{"type":"array","items":{"type":"string","uniqueKey":"provider.ignore.items.[INDEX]","typeLabel":"string"},"uniqueKey":"provider.ignore","typeLabel":"string[]"},"include_alpha":{"type":"boolean","description":"Include alpha providers in routing (off by default).","uniqueKey":"provider.include_alpha","typeLabel":"boolean"},"allow_fallbacks":{"oneOf":[{"type":"boolean","description":"Allow fallback to another eligible provider after failure.","uniqueKey":"provider.allow_fallbacks.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Allow fallback to another eligible provider after failure.","uniqueKey":"provider.allow_fallbacks.oneOf.1","typeLabel":"null"}],"uniqueKey":"provider.allow_fallbacks","typeLabel":"boolean | null"},"require_parameters":{"oneOf":[{"type":"boolean","description":"Require provider support for requested parameters before routing.","uniqueKey":"provider.require_parameters.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Require provider support for requested parameters before routing.","uniqueKey":"provider.require_parameters.oneOf.1","typeLabel":"null"}],"uniqueKey":"provider.require_parameters","typeLabel":"boolean | null"},"required_execution_region":{"oneOf":[{"type":"string","description":"Restrict routing to providers with the requested execution region.","uniqueKey":"provider.required_execution_region.oneOf.0","typeLabel":"string"},{"type":"null","description":"Restrict routing to providers with the requested execution region.","uniqueKey":"provider.required_execution_region.oneOf.1","typeLabel":"null"}],"uniqueKey":"provider.required_execution_region","typeLabel":"string | null"},"required_data_region":{"oneOf":[{"type":"string","description":"Restrict routing to providers with the requested data region.","uniqueKey":"provider.required_data_region.oneOf.0","typeLabel":"string"},{"type":"null","description":"Restrict routing to providers with the requested data region.","uniqueKey":"provider.required_data_region.oneOf.1","typeLabel":"null"}],"uniqueKey":"provider.required_data_region","typeLabel":"string | null"},"require_zero_data_retention":{"oneOf":[{"type":"boolean","description":"Restrict routing to providers that support zero data retention.","uniqueKey":"provider.require_zero_data_retention.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Restrict routing to providers that support zero data retention.","uniqueKey":"provider.require_zero_data_retention.oneOf.1","typeLabel":"null"}],"uniqueKey":"provider.require_zero_data_retention","typeLabel":"boolean | null"},"data_collection":{"oneOf":[{"type":"string","description":"`allow` (the default) filters nothing. `deny` is not supported yet and returns 400 unsupported_routing_filter.","enum":["allow","deny"],"uniqueKey":"provider.data_collection.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"`allow` (the default) filters nothing. `deny` is not supported yet and returns 400 unsupported_routing_filter.","enum":["allow","deny"],"uniqueKey":"provider.data_collection.oneOf.1","typeLabel":"null"}],"uniqueKey":"provider.data_collection","typeLabel":"enum\u003cstring> | null"},"zdr":{"oneOf":[{"type":"boolean","uniqueKey":"provider.zdr.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"provider.zdr.oneOf.1","typeLabel":"null"}],"uniqueKey":"provider.zdr","typeLabel":"boolean | null"},"enforce_distillable_text":{"oneOf":[{"type":"boolean","description":"`false` (the default) filters nothing. `true` is not supported yet and returns 400 unsupported_routing_filter.","uniqueKey":"provider.enforce_distillable_text.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`false` (the default) filters nothing. `true` is not supported yet and returns 400 unsupported_routing_filter.","uniqueKey":"provider.enforce_distillable_text.oneOf.1","typeLabel":"null"}],"uniqueKey":"provider.enforce_distillable_text","typeLabel":"boolean | null"},"quantizations":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"provider.quantizations.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueKey":"provider.quantizations.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"uniqueKey":"provider.quantizations.oneOf.1","typeLabel":"null"}],"uniqueKey":"provider.quantizations","typeLabel":"string[] | null"},"sort":{"oneOf":[{"type":"string","description":"Rank providers for this request, for example by price, latency, or throughput.","uniqueKey":"provider.sort.oneOf.0","typeLabel":"string"},{"type":"object","description":"Rank providers for this request, for example by price, latency, or throughput.","additionalProperties":true,"uniqueKey":"provider.sort.oneOf.1","typeLabel":"object"}],"uniqueKey":"provider.sort","typeLabel":"string | object"},"max_price":{"type":"object","properties":{"prompt":{"oneOf":[{"type":"number","uniqueKey":"provider.max_price.prompt.oneOf.0","typeLabel":"number"},{"type":"string","uniqueKey":"provider.max_price.prompt.oneOf.1","typeLabel":"string"}],"uniqueKey":"provider.max_price.prompt","typeLabel":"number | string"},"completion":{"oneOf":[{"type":"number","uniqueKey":"provider.max_price.completion.oneOf.0","typeLabel":"number"},{"type":"string","uniqueKey":"provider.max_price.completion.oneOf.1","typeLabel":"string"}],"uniqueKey":"provider.max_price.completion","typeLabel":"number | string"},"image":{"oneOf":[{"type":"number","uniqueKey":"provider.max_price.image.oneOf.0","typeLabel":"number"},{"type":"string","uniqueKey":"provider.max_price.image.oneOf.1","typeLabel":"string"}],"uniqueKey":"provider.max_price.image","typeLabel":"number | string"},"audio":{"oneOf":[{"type":"number","uniqueKey":"provider.max_price.audio.oneOf.0","typeLabel":"number"},{"type":"string","uniqueKey":"provider.max_price.audio.oneOf.1","typeLabel":"string"}],"uniqueKey":"provider.max_price.audio","typeLabel":"number | string"},"request":{"oneOf":[{"type":"number","uniqueKey":"provider.max_price.request.oneOf.0","typeLabel":"number"},{"type":"string","uniqueKey":"provider.max_price.request.oneOf.1","typeLabel":"string"}],"uniqueKey":"provider.max_price.request","typeLabel":"number | string"}},"uniqueKey":"provider.max_price","typeLabel":"object"},"preferred_min_throughput":{"oneOf":[{"type":"number","uniqueKey":"provider.preferred_min_throughput.oneOf.0","typeLabel":"number"},{"type":"object","additionalProperties":{"type":"number","uniqueKey":"provider.preferred_min_throughput.oneOf.1.additionalProperties","typeLabel":"number"},"uniqueKey":"provider.preferred_min_throughput.oneOf.1","typeLabel":"object"}],"uniqueKey":"provider.preferred_min_throughput","typeLabel":"number | object"},"preferred_max_latency":{"oneOf":[{"type":"number","uniqueKey":"provider.preferred_max_latency.oneOf.0","typeLabel":"number"},{"type":"object","additionalProperties":{"type":"number","uniqueKey":"provider.preferred_max_latency.oneOf.1.additionalProperties","typeLabel":"number"},"uniqueKey":"provider.preferred_max_latency.oneOf.1","typeLabel":"object"}],"uniqueKey":"provider.preferred_max_latency","typeLabel":"number | object"}},"uniqueKey":"provider","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"datetimeServerTool":{"title":"datetimeServerTool","value":{"model":"anthropic/claude-sonnet-4","max_tokens":512,"stream":false,"messages":[{"role":"user","content":"What time is it in America/New_York right now?"}],"tools":[{"type":"gateway:datetime","parameters":{"timezone":"America/New_York"}}],"tool_choice":{"type":"auto"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"3a5fcf5e-2806-4561-b3ec-f6c78d10b20a":{"description":"Message response","headers":{"x-request-id":{"description":"Server-generated public request identifier. For inference requests, this is the generation ID used in response payloads and request logs. Caller-supplied x-request-id values do not replace it.","schema":{"type":"string","pattern":"^G-[0-9A-HJKMNP-TV-Z]{26}$"}},"X-Phaseo-Requested-Model":{"description":"The model the request asked for. Sent only when retired model routing answered the request with a replacement model.","schema":{"type":"string"}},"X-Phaseo-Model-Substitution":{"description":"Why and how the requested model was replaced, for example `reason=unserved; from=lab/old-model; to=lab/new-model`. Sent only when retired model routing answered the request with a replacement model.","schema":{"type":"string"}},"X-Phaseo-Dropped-Params":{"description":"Request parameters the client sent that the serving provider does not support, which the gateway removed instead of sending them upstream or rejecting the request, for example `top_k, min_p`. Sent only on successful responses, and only when at least one parameter from the request body was dropped. Parameters that come from a preset or a default value are not listed.","schema":{"type":"string"}},"X-Phaseo-Spend-Warning":{"description":"Sent while a spend rule that blocks covers the request and spend has passed its last alert threshold but not yet its block point. Lists up to three rules as rule_id, scope and resets_at, for example `rule_id=...; scope=workspace; resets_at=2026-11-01T00:00:00.000Z`. Once spend reaches the block point, requests in scope get a 429 with code spend_rule_blocked.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","uniqueKey":"id","typeLabel":"string"},"type":{"type":"string","uniqueKey":"type","typeLabel":"string"},"role":{"type":"string","enum":["assistant"],"uniqueKey":"role","typeLabel":"enum\u003cstring>"},"model":{"type":"string","uniqueKey":"model","typeLabel":"string"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["text","image","tool_use","tool_result"],"uniqueKey":"content.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","uniqueKey":"content.items.[INDEX].text","typeLabel":"string"},"cache_control":{"type":"object","description":"Prompt cache control. Use type ephemeral with an optional ttl of 5m or 1h. scope applies only to a top-level Claude cache policy. Amazon Bedrock and Google Vertex AI cache Claude 3.7 Sonnet, 3.5 Sonnet and 3 Opus for 5 minutes only; there the ttl is removed and a removed 1h is reported in X-Phaseo-Dropped-Params as cache_control.ttl.","properties":{"type":{"type":"string","uniqueKey":"content.items.[INDEX].cache_control.type","typeLabel":"string"},"ttl":{"type":"string","uniqueKey":"content.items.[INDEX].cache_control.ttl","typeLabel":"string"},"scope":{"type":"string","uniqueKey":"content.items.[INDEX].cache_control.scope","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"content.items.[INDEX].cache_control","typeLabel":"object"},"source":{"type":"object","properties":{"type":{"type":"string","uniqueKey":"content.items.[INDEX].source.type","typeLabel":"string"},"media_type":{"type":"string","uniqueKey":"content.items.[INDEX].source.media_type","typeLabel":"string"},"data":{"type":"string","uniqueKey":"content.items.[INDEX].source.data","typeLabel":"string"},"url":{"type":"string","uniqueKey":"content.items.[INDEX].source.url","typeLabel":"string"}},"uniqueKey":"content.items.[INDEX].source","typeLabel":"object"},"id":{"type":"string","uniqueKey":"content.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","uniqueKey":"content.items.[INDEX].name","typeLabel":"string"},"input":{"type":"object","uniqueKey":"content.items.[INDEX].input","typeLabel":"object"},"tool_use_id":{"type":"string","uniqueKey":"content.items.[INDEX].tool_use_id","typeLabel":"string"},"content":{"type":"string","uniqueKey":"content.items.[INDEX].content","typeLabel":"string"}},"uniqueKey":"content.items.[INDEX]","typeLabel":"object"},"uniqueKey":"content","typeLabel":"object[]"},"stop_reason":{"type":"string","uniqueKey":"stop_reason","typeLabel":"string"},"stop_sequence":{"type":"string","uniqueKey":"stop_sequence","typeLabel":"string"},"usage":{"type":"object","properties":{"input_tokens":{"type":"integer","description":"Uncached input tokens. As on Anthropic, this excludes cache reads and cache writes.","uniqueKey":"usage.input_tokens","typeLabel":"integer"},"cache_read_input_tokens":{"type":"integer","description":"Input tokens read from the provider's prompt cache.","uniqueKey":"usage.cache_read_input_tokens","typeLabel":"integer"},"cache_creation_input_tokens":{"type":"integer","description":"Input tokens written to the provider's prompt cache.","uniqueKey":"usage.cache_creation_input_tokens","typeLabel":"integer"},"cache_creation":{"type":"object","description":"Cache writes split by cache lifetime.","properties":{"ephemeral_5m_input_tokens":{"type":"integer","description":"Input tokens written with a 5-minute cache lifetime.","uniqueKey":"usage.cache_creation.ephemeral_5m_input_tokens","typeLabel":"integer"},"ephemeral_1h_input_tokens":{"type":"integer","description":"Input tokens written with a 1-hour cache lifetime.","uniqueKey":"usage.cache_creation.ephemeral_1h_input_tokens","typeLabel":"integer"}},"uniqueKey":"usage.cache_creation","typeLabel":"object"},"output_tokens":{"type":"integer","uniqueKey":"usage.output_tokens","typeLabel":"integer"},"cost":{"type":"number","format":"double","description":"What the request costs you, in US dollars: the amount charged to your credits, the same figure as `cost_nanos`, after any data-sharing discount or zero-output waiver. Returned on Chat Completions, Responses, Messages and embeddings responses once the request is priced. On a stream it is on the final usage frame (on Messages, the final `message_delta`) and covers the whole stream. A stream leaves it out when the charge is not known as that frame is sent: on a BYOK stream, whose service fee is worked out when the stream ends (`cost_details.upstream_inference_cost` gives the model price instead), and on a stream that has already failed, which is not charged.","example":0.001234567,"uniqueKey":"usage.cost","typeLabel":"number\u003cdouble>"},"cost_details":{"type":"object","description":"Breakdown of the request's cost.","properties":{"upstream_inference_cost":{"oneOf":[{"type":"number","format":"double","description":"On a BYOK request, what the provider charges your own key for the inference, in US dollars, at the model's listed prices. Null when the request runs on Phaseo credits, where `cost` is the whole charge.","example":null,"uniqueKey":"usage.cost_details.upstream_inference_cost.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","description":"On a BYOK request, what the provider charges your own key for the inference, in US dollars, at the model's listed prices. Null when the request runs on Phaseo credits, where `cost` is the whole charge.","example":null,"uniqueKey":"usage.cost_details.upstream_inference_cost.oneOf.1","typeLabel":"null"}],"uniqueKey":"usage.cost_details.upstream_inference_cost","typeLabel":"number\u003cdouble> | null"}},"uniqueKey":"usage.cost_details","typeLabel":"object"}},"uniqueKey":"usage","typeLabel":"object"},"context_management":{"type":"object","description":"Present when the request used `context_management` and Anthropic applied an edit. `applied_edits` lists each edit with what it cleared. Streams carry it on the final `message_delta` event.","properties":{"applied_edits":{"type":"array","items":{"type":"object","additionalProperties":true,"uniqueKey":"context_management.applied_edits.items.[INDEX]","typeLabel":"object"},"uniqueKey":"context_management.applied_edits","typeLabel":"object[]"}},"uniqueKey":"context_management","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"\u003cstring>","type":"\u003cstring>","role":"assistant","model":"\u003cstring>","content":[{"type":"text","text":"\u003cstring>","cache_control":{"type":"\u003cstring>","ttl":"\u003cstring>","scope":"\u003cstring>"},"source":{"type":"\u003cstring>","media_type":"\u003cstring>","data":"\u003cstring>","url":"\u003cstring>"},"id":"\u003cstring>","name":"\u003cstring>","input":{},"tool_use_id":"\u003cstring>","content":"\u003cstring>"}],"stop_reason":"\u003cstring>","stop_sequence":"\u003cstring>","usage":{"input_tokens":123,"cache_read_input_tokens":123,"cache_creation_input_tokens":123,"cache_creation":{"ephemeral_5m_input_tokens":123,"ephemeral_1h_input_tokens":123},"output_tokens":123,"cost":0.001234567,"cost_details":{"upstream_inference_cost":null}},"context_management":{"applied_edits":[{}]}}}},"exampleType":"generated"},"text/event-stream":{"schema":{"type":"string","uniqueKey":"","typeLabel":"string"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"7175321d-db20-40f8-904b-8c57cc025120":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Bearer token authentication","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"00a8730e-2e87-4594-b51e-bdbaf6f5289e":{"url":"https://api.phaseo.app/v1","description":"Global routing"},"82b05335-9ade-42a8-9178-f533b02c539a":{"url":"https://eu.api.phaseo.app/v1","description":"EU regional provider routing (text only)"},"5a991c06-0e70-4bb7-8430-462fe394cbfa":{"url":"https://us.api.phaseo.app/v1","description":"US regional provider routing (text only)"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Bearer token authentication","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer token authentication","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"openapi/v1/openapi.yaml"},"subdomain":"aistats","siteName":"Phaseo Docs","title":"Create a message - Phaseo Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/v1/api-reference/endpoint/anthropic-messages","matchLevel":0},"es":{"href":"/es/v1/api-reference/endpoint/anthropic-messages","matchLevel":1},"fr":{"href":"/fr/v1/api-reference/endpoint/anthropic-messages","matchLevel":1},"de":{"href":"/de/v1/api-reference/endpoint/anthropic-messages","matchLevel":1},"pt-BR":{"href":"/pt-BR/v1/api-reference/endpoint/anthropic-messages","matchLevel":1},"ja":{"href":"/ja/v1/api-reference/endpoint/anthropic-messages","matchLevel":1},"zh-Hans":{"href":"/zh-Hans/v1/api-reference/endpoint/anthropic-messages","matchLevel":1},"hi":{"href":"/hi/v1/api-reference/endpoint/anthropic-messages","matchLevel":1},"ar":{"href":"/ar/v1/api-reference/endpoint/anthropic-messages","matchLevel":1}}},"lastModified":"2026-10-22T15:07:45.346Z","gitLastModified":"2026-10-22T15:06:02.000Z","originalFileLocation":"v1/api-reference/endpoint/anthropic-messages.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Anthropic-compatible Messages endpoint at /v1/messages.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Phaseo Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/aistats/e9OKRuK0XVSasMAN/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/aistats/e9OKRuK0XVSasMAN/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/aistats/e9OKRuK0XVSasMAN/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/aistats/e9OKRuK0XVSasMAN/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/aistats/e9OKRuK0XVSasMAN/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/aistats/e9OKRuK0XVSasMAN/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/aistats/e9OKRuK0XVSasMAN/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/aistats/e9OKRuK0XVSasMAN/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/aistats/e9OKRuK0XVSasMAN/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create a message - Phaseo Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Anthropic-compatible Messages endpoint at /v1/messages.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Phaseo Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://phaseo.app/docs/v1/api-reference/endpoint/anthropic-messages\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://phaseo.app/og/dynamic?title=Create%20a%20message\u0026amp;description=Anthropic-compatible%20Messages%20endpoint%20at%20/v1/messages.\u0026amp;pathname=/docs/v1/api-reference/endpoint/anthropic-messages\">\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 message - Phaseo Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Anthropic-compatible Messages endpoint at /v1/messages.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://phaseo.app/og/dynamic?title=Create%20a%20message\u0026amp;description=Anthropic-compatible%20Messages%20endpoint%20at%20/v1/messages.\u0026amp;pathname=/docs/v1/api-reference/endpoint/anthropic-messages\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/aistats/e9OKRuK0XVSasMAN/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Phaseo Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0069a8\">\u003clink data-mint-head rel=\"canonical\" href=\"https://phaseo.app/docs/v1/api-reference/endpoint/anthropic-messages\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/v1/api-reference/endpoint/anthropic-messages.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://phaseo.app/docs/v1/api-reference/endpoint/anthropic-messages\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://phaseo.app/docs/es/v1/api-reference/endpoint/anthropic-messages\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://phaseo.app/docs/fr/v1/api-reference/endpoint/anthropic-messages\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://phaseo.app/docs/de/v1/api-reference/endpoint/anthropic-messages\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://phaseo.app/docs/pt-BR/v1/api-reference/endpoint/anthropic-messages\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://phaseo.app/docs/ja/v1/api-reference/endpoint/anthropic-messages\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh-Hans\" href=\"https://phaseo.app/docs/zh-Hans/v1/api-reference/endpoint/anthropic-messages\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"hi\" href=\"https://phaseo.app/docs/hi/v1/api-reference/endpoint/anthropic-messages\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://phaseo.app/docs/ar/v1/api-reference/endpoint/anthropic-messages\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://phaseo.app/docs/v1/api-reference/endpoint/anthropic-messages\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://phaseo.app/#organization\",\"name\":\"Phaseo Docs\",\"url\":\"https://phaseo.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/aistats/bxzzjromPyjBlHKc/logo/light.svg?fit=max\u0026auto=format\u0026n=bxzzjromPyjBlHKc\u0026q=85\u0026s=f1e10d307a46469852edc2ae198e3c2a\"}},{\"@type\":\"WebSite\",\"@id\":\"https://phaseo.app/docs#website\",\"name\":\"Phaseo Docs\",\"url\":\"https://phaseo.app/docs\",\"publisher\":{\"@id\":\"https://phaseo.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://phaseo.app/docs/v1/api-reference/endpoint/anthropic-messages#webpage\",\"url\":\"https://phaseo.app/docs/v1/api-reference/endpoint/anthropic-messages\",\"name\":\"Create a message\",\"description\":\"Anthropic-compatible Messages endpoint at /v1/messages.\",\"dateModified\":\"2026-10-22T15:06:02.000Z\",\"isPartOf\":{\"@id\":\"https://phaseo.app/docs#website\"},\"breadcrumb\":{\"@id\":\"https://phaseo.app/docs/v1/api-reference/endpoint/anthropic-messages#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://phaseo.app/docs/v1/api-reference/endpoint/anthropic-messages#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Text\",\"item\":\"https://phaseo.app/docs/v1/api-reference/endpoint/responses\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a message\",\"item\":\"https://phaseo.app/docs/v1/api-reference/endpoint/anthropic-messages\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://phaseo.app/docs/v1/api-reference/endpoint/anthropic-messages#apireference\",\"headline\":\"Create a message\",\"name\":\"Create a message\",\"description\":\"Anthropic-compatible Messages endpoint at /v1/messages.\",\"url\":\"https://phaseo.app/docs/v1/api-reference/endpoint/anthropic-messages\",\"mainEntityOfPage\":{\"@id\":\"https://phaseo.app/docs/v1/api-reference/endpoint/anthropic-messages#webpage\"},\"image\":\"https://phaseo.app/og/dynamic?title=Create%20a%20message\u0026description=Anthropic-compatible%20Messages%20endpoint%20at%20/v1/messages.\u0026pathname=/docs/v1/api-reference/endpoint/anthropic-messages\",\"dateModified\":\"2026-10-22T15:06:02.000Z\",\"publisher\":{\"@id\":\"https://phaseo.app/#organization\"},\"isPartOf\":{\"@id\":\"https://phaseo.app/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Phaseo Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Phaseo Docs","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Docs","icon":"book","pages":[{"title":"Docs","href":"/v1"}]},{"tab":"API Reference","icon":"server","groups":[{"group":"API Guides","icon":"book-open","expanded":true,"pages":[{"title":"Gateway API Overview","sidebarTitle":"Overview","icon":"map","href":"/v1/api-reference/introduction"},{"title":"Authentication","icon":"key-round","href":"/v1/developers/authentication"},{"title":"Parameters","icon":"sliders-horizontal","href":"/v1/api-reference/parameters"},{"title":"Streaming","icon":"radio","href":"/v1/guides/streaming"},{"title":"Rate Limits","icon":"gauge","href":"/v1/api-reference/limits"},{"title":"Errors and Debugging","icon":"bug","href":"/v1/api-reference/errors"}]},{"group":"Text","icon":"message-square-text","pages":[{"title":"Create a response","sidebarTitle":"Create a response","openapi":"openapi/v1/openapi.yaml POST /responses","href":"/v1/api-reference/endpoint/responses"},{"title":"Create a chat completion","sidebarTitle":"Create a chat completion","openapi":"openapi/v1/openapi.yaml POST /chat/completions","description":"Generate chat-based completions using the OpenAI-compatible chat endpoint.","href":"/v1/api-reference/endpoint/chat-completions"},{"title":"Create a message","sidebarTitle":"Create a message (Anthropic)","openapi":"openapi/v1/openapi.yaml POST /messages","href":"/v1/api-reference/endpoint/anthropic-messages"}]},{"group":"Image","icon":"image","pages":[{"title":"Generate an image","sidebarTitle":"Generate an image","openapi":"openapi/v1/openapi.yaml POST /images/generations","description":"Creates an image given a prompt.","href":"/v1/api-reference/endpoint/images-generations"},{"title":"Edit an image","sidebarTitle":"Edit an image","openapi":"openapi/v1/openapi.yaml POST /images/edits","href":"/v1/api-reference/endpoint/images-edits"}]},{"group":"Video","icon":"video","tag":"Beta","pages":[{"title":"Create video","openapi":"openapi/v1/openapi.yaml POST /videos","href":"/v1/api-reference/endpoint/video-create"},{"title":"Get video status","openapi":"openapi/v1/openapi.yaml GET /videos/{video_id}","href":"/v1/api-reference/endpoint/video-status"},{"title":"Download video content","openapi":"openapi/v1/openapi.yaml GET /videos/{video_id}/content","href":"/v1/api-reference/endpoint/video-content"},{"title":"Create a signed download URL","openapi":"openapi/v1/openapi.yaml POST /videos/{video_id}/download_url","href":"/v1/api-reference/endpoint/video-download-url"},{"title":"Cancel video","openapi":"openapi/v1/openapi.yaml POST /videos/{video_id}/cancel","href":"/v1/api-reference/endpoint/video-cancel"},{"title":"Delete video","openapi":"openapi/v1/openapi.yaml DELETE /videos/{video_id}","href":"/v1/api-reference/endpoint/video-delete"},{"title":"List videos","openapi":"openapi/v1/openapi.yaml GET /videos","href":"/v1/api-reference/endpoint/video-list"},{"title":"List video models","openapi":"openapi/v1/openapi.yaml GET /videos/models","href":"/v1/api-reference/endpoint/video-models"}]},{"group":"Embeddings","icon":"braces","pages":[{"title":"Create embeddings","sidebarTitle":"Create embeddings","openapi":"openapi/v1/openapi.yaml POST /embeddings","href":"/v1/api-reference/endpoint/embeddings"}]},{"group":"Decisions","icon":"signpost","pages":[{"title":"Make a decision","tag":"Beta","openapi":"openapi/v1/openapi.yaml POST /decisions","href":"/v1/api-reference/endpoint/decisions"},{"title":"Extract values","tag":"Beta","icon":"list-filter","openapi":"openapi/v1/openapi.yaml POST /extractions","href":"/v1/api-reference/endpoint/extractions"}]},{"group":"Moderations","icon":"shield-check","pages":[{"title":"Create a moderation","sidebarTitle":"Create a moderation","openapi":"openapi/v1/openapi.yaml POST /moderations","href":"/v1/api-reference/endpoint/moderations"}]},{"group":"Rerank","icon":"arrow-down-wide-narrow","pages":[{"title":"Rerank documents","sidebarTitle":"Rerank documents","openapi":"openapi/v1/openapi.yaml POST /rerank","href":"/v1/api-reference/endpoint/rerank"}]},{"group":"Documents","icon":"file-text","pages":[{"title":"Extract text with OCR","sidebarTitle":"Extract text","tag":"Beta","openapi":"openapi/v1/openapi.yaml POST /ocr","href":"/v1/api-reference/endpoint/ocr"},{"title":"Parse a document image","sidebarTitle":"Parse a document","tag":"Beta","openapi":"openapi/v1/openapi.yaml POST /parse","href":"/v1/api-reference/endpoint/parse"}]},{"group":"Speech","icon":"audio-lines","pages":[{"title":"Create speech","sidebarTitle":"Create speech","openapi":"openapi/v1/openapi.yaml POST /audio/speech","href":"/v1/api-reference/endpoint/audio-speech"}]},{"group":"Transcription","icon":"captions","pages":[{"title":"Create a transcription","sidebarTitle":"Create a transcription","openapi":"openapi/v1/openapi.yaml POST /audio/transcriptions","href":"/v1/api-reference/endpoint/audio-transcriptions"}]},{"group":"Translation","icon":"languages","pages":[{"title":"Create a translation","sidebarTitle":"Create a translation","openapi":"openapi/v1/openapi.yaml POST /audio/translations","href":"/v1/api-reference/endpoint/audio-translations"}]},{"group":"Music","icon":"music","pages":[{"title":"Generate music","sidebarTitle":"Generate music","openapi":"openapi/v1/openapi.yaml POST /music/generate","href":"/v1/api-reference/endpoint/music-generate"},{"title":"Get music generation","sidebarTitle":"Get music generation","openapi":"openapi/v1/openapi.yaml GET /music/generate/{music_id}","href":"/v1/api-reference/endpoint/music-status"}]},{"group":"Jobs, Files \u0026 Webhooks","icon":"layers","pages":[{"group":"Batch","tag":"Beta","expanded":true,"pages":[{"title":"Create batch","openapi":"openapi/v1/openapi.yaml POST /batches","href":"/v1/api-reference/endpoint/batches-create"},{"title":"Get batch status","openapi":"openapi/v1/openapi.yaml GET /batches/{batch_id}","href":"/v1/api-reference/endpoint/batches-retrieve"},{"title":"Download batch results","openapi":"openapi/v1/openapi.yaml GET /batches/{batch_id}/results","href":"/v1/api-reference/endpoint/batches-results"},{"title":"List batch request rows","openapi":"openapi/v1/openapi.yaml GET /batches/{batch_id}/requests","href":"/v1/api-reference/endpoint/batches-requests"},{"title":"Cancel batch","openapi":"openapi/v1/openapi.yaml POST /batches/{batch_id}/cancel","href":"/v1/api-reference/endpoint/batches-cancel"},{"title":"List batches","openapi":"openapi/v1/openapi.yaml GET /batches","href":"/v1/api-reference/endpoint/batches-list"},{"title":"Upload batch file","openapi":"openapi/v1/openapi.yaml POST /batches/files","href":"/v1/api-reference/endpoint/batches-files-upload"},{"title":"Retrieve batch file","openapi":"openapi/v1/openapi.yaml GET /batches/files/{file_id}","href":"/v1/api-reference/endpoint/batches-files-retrieve"},{"title":"Download batch file content","openapi":"openapi/v1/openapi.yaml GET /batches/files/{file_id}/content","href":"/v1/api-reference/endpoint/batches-files-content"},{"title":"List batch files","openapi":"openapi/v1/openapi.yaml GET /batches/files","href":"/v1/api-reference/endpoint/batches-files-list"},{"title":"List batch models","openapi":"openapi/v1/openapi.yaml GET /batches/models","href":"/v1/api-reference/endpoint/batches-models"},{"title":"List batch provider capabilities","openapi":"openapi/v1/openapi.yaml GET /batches/capabilities","href":"/v1/api-reference/endpoint/batches-capabilities"}]},{"group":"Files","expanded":true,"pages":[{"title":"Upload a file","sidebarTitle":"Upload a file","openapi":"openapi/v1/openapi.yaml POST /files","href":"/v1/api-reference/endpoint/files"},{"title":"Retrieve a file","sidebarTitle":"Retrieve a file","openapi":"openapi/v1/openapi.yaml GET /files/{file_id}","href":"/v1/api-reference/endpoint/files-retrieve"},{"title":"Download file content","sidebarTitle":"Download file content","tag":"Beta","openapi":"openapi/v1/openapi.yaml GET /files/{file_id}/content","href":"/v1/api-reference/endpoint/files-content"},{"title":"List files","sidebarTitle":"List files","openapi":"openapi/v1/openapi.yaml GET /files","href":"/v1/api-reference/endpoint/files-list"}]},{"group":"Webhook Endpoints","tag":"Beta","expanded":true,"pages":[{"title":"Create webhook endpoint","openapi":"openapi/v1/openapi.yaml POST /webhook-endpoints","href":"/v1/api-reference/endpoint/webhook-endpoints-create"},{"title":"Get webhook endpoint","openapi":"openapi/v1/openapi.yaml GET /webhook-endpoints/{id}","href":"/v1/api-reference/endpoint/webhook-endpoints-get"},{"title":"Update webhook endpoint","openapi":"openapi/v1/openapi.yaml PATCH /webhook-endpoints/{id}","href":"/v1/api-reference/endpoint/webhook-endpoints-update"},{"title":"Rotate webhook secret","openapi":"openapi/v1/openapi.yaml POST /webhook-endpoints/{id}/rotate-secret","href":"/v1/api-reference/endpoint/webhook-endpoints-rotate-secret"},{"title":"Delete webhook endpoint","openapi":"openapi/v1/openapi.yaml DELETE /webhook-endpoints/{id}","href":"/v1/api-reference/endpoint/webhook-endpoints-delete"},{"title":"List webhook endpoints","openapi":"openapi/v1/openapi.yaml GET /webhook-endpoints","href":"/v1/api-reference/endpoint/webhook-endpoints-list"}]}]},{"group":"Models \u0026 Pricing","icon":"boxes","pages":[{"title":"List models","sidebarTitle":"List models","openapi":"openapi/v1/openapi.yaml GET /models","href":"/v1/api-reference/endpoint/models"},{"title":"List model endpoint capabilities","openapi":"openapi/v1/openapi.yaml GET /models/{author}/{slug}/endpoints","href":"/v1/api-reference/endpoint/model-endpoints"},{"title":"List providers","sidebarTitle":"List providers","openapi":"openapi/v1/openapi.yaml GET /providers","href":"/v1/api-reference/endpoint/providers"},{"title":"List endpoints","sidebarTitle":"List endpoints","openapi":"openapi/v1/openapi.yaml GET /endpoints","href":"/v1/api-reference/endpoint/endpoints"},{"title":"List model pricing","sidebarTitle":"List model pricing","openapi":"openapi/v1/openapi.yaml GET /pricing/models","href":"/v1/api-reference/endpoint/pricing-models"},{"title":"Calculate pricing","sidebarTitle":"Calculate pricing","openapi":"openapi/v1/openapi.yaml POST /pricing/calculate","href":"/v1/api-reference/endpoint/pricing-calculate"},{"title":"List organisations","sidebarTitle":"List organisations","openapi":"openapi/v1/openapi.yaml GET /organisations","href":"/v1/api-reference/endpoint/organisations"}]},{"group":"Routing \u0026 Policies","icon":"route","pages":[{"group":"Routing","expanded":false,"pages":[{"title":"Get workspace settings","sidebarTitle":"Get settings","openapi":"openapi/v1/openapi.yaml GET /settings","href":"/v1/api-reference/endpoint/workspace-settings-get"},{"title":"Update workspace settings","sidebarTitle":"Update settings","openapi":"openapi/v1/openapi.yaml PATCH /settings","href":"/v1/api-reference/endpoint/workspace-settings-update"},{"title":"Create dynamic route","sidebarTitle":"Create route","openapi":"openapi/v1/openapi.yaml POST /routing/dynamic-routes","href":"/v1/api-reference/endpoint/dynamic-routes-create"},{"title":"Get dynamic route","sidebarTitle":"Get route","openapi":"openapi/v1/openapi.yaml GET /routing/dynamic-routes/{id}","href":"/v1/api-reference/endpoint/dynamic-routes-get"},{"title":"Update dynamic route","sidebarTitle":"Update route","openapi":"openapi/v1/openapi.yaml PATCH /routing/dynamic-routes/{id}","href":"/v1/api-reference/endpoint/dynamic-routes-update"},{"title":"Replace dynamic-route keys","sidebarTitle":"Attach keys","openapi":"openapi/v1/openapi.yaml PUT /routing/dynamic-routes/{id}/keys","href":"/v1/api-reference/endpoint/dynamic-routes-keys-update"},{"title":"Deploy dynamic-route version","sidebarTitle":"Deploy version","openapi":"openapi/v1/openapi.yaml POST /routing/dynamic-routes/{id}/versions/{version}/deploy","href":"/v1/api-reference/endpoint/dynamic-routes-deploy"},{"title":"Delete dynamic route","sidebarTitle":"Delete route","openapi":"openapi/v1/openapi.yaml DELETE /routing/dynamic-routes/{id}","href":"/v1/api-reference/endpoint/dynamic-routes-delete"},{"title":"List dynamic routes","sidebarTitle":"List routes","openapi":"openapi/v1/openapi.yaml GET /routing/dynamic-routes","href":"/v1/api-reference/endpoint/dynamic-routes-list"},{"title":"Get auto-routing settings","sidebarTitle":"Get auto-routing","openapi":"openapi/v1/openapi.yaml GET /routing/auto","href":"/v1/api-reference/endpoint/routing-auto-get"},{"title":"Update auto-routing settings","sidebarTitle":"Update auto-routing","openapi":"openapi/v1/openapi.yaml PATCH /routing/auto","href":"/v1/api-reference/endpoint/routing-auto-update"},{"title":"List successor replacements","sidebarTitle":"List successor replacements","openapi":"openapi/v1/openapi.yaml GET /routing/successor/replacements","href":"/v1/api-reference/endpoint/successor-replacements-list"},{"title":"Save a successor replacement","sidebarTitle":"Save successor replacement","openapi":"openapi/v1/openapi.yaml PUT /routing/successor/replacements","href":"/v1/api-reference/endpoint/successor-replacements-save"},{"title":"Remove a successor replacement","sidebarTitle":"Remove successor replacement","openapi":"openapi/v1/openapi.yaml DELETE /routing/successor/replacements","href":"/v1/api-reference/endpoint/successor-replacements-remove"}]},{"group":"Presets","expanded":false,"pages":[{"title":"Create preset","sidebarTitle":"Create preset","openapi":"openapi/v1/openapi.yaml POST /presets","href":"/v1/api-reference/endpoint/presets-create"},{"title":"Get preset","sidebarTitle":"Get preset","openapi":"openapi/v1/openapi.yaml GET /presets/{id}","href":"/v1/api-reference/endpoint/presets-get"},{"title":"Update preset draft","sidebarTitle":"Update preset","openapi":"openapi/v1/openapi.yaml PATCH /presets/{id}","href":"/v1/api-reference/endpoint/presets-update"},{"title":"Publish preset version","sidebarTitle":"Publish version","openapi":"openapi/v1/openapi.yaml POST /presets/{id}/versions","href":"/v1/api-reference/endpoint/presets-version-publish"},{"title":"List preset versions","sidebarTitle":"List versions","openapi":"openapi/v1/openapi.yaml GET /presets/{id}/versions","href":"/v1/api-reference/endpoint/presets-versions-list"},{"title":"List preset labels","sidebarTitle":"List labels","openapi":"openapi/v1/openapi.yaml GET /presets/{id}/labels","href":"/v1/api-reference/endpoint/presets-labels-list"},{"title":"Set preset label","sidebarTitle":"Set label","openapi":"openapi/v1/openapi.yaml PUT /presets/{id}/labels/{label}","href":"/v1/api-reference/endpoint/presets-label-set"},{"title":"Remove preset label","sidebarTitle":"Remove label","openapi":"openapi/v1/openapi.yaml DELETE /presets/{id}/labels/{label}","href":"/v1/api-reference/endpoint/presets-label-delete"},{"title":"Fork public preset","sidebarTitle":"Fork preset","openapi":"openapi/v1/openapi.yaml POST /presets/{id}/fork","href":"/v1/api-reference/endpoint/presets-fork"},{"title":"Apply upstream preset version","sidebarTitle":"Apply upstream","openapi":"openapi/v1/openapi.yaml POST /presets/{id}/upstream","href":"/v1/api-reference/endpoint/presets-upstream-apply"},{"title":"Archive preset","sidebarTitle":"Archive preset","openapi":"openapi/v1/openapi.yaml DELETE /presets/{id}","href":"/v1/api-reference/endpoint/presets-delete"},{"title":"List presets","sidebarTitle":"List presets","openapi":"openapi/v1/openapi.yaml GET /presets","href":"/v1/api-reference/endpoint/presets-list"},{"title":"Get preset publisher","sidebarTitle":"Get publisher","openapi":"openapi/v1/openapi.yaml GET /presets/publisher","href":"/v1/api-reference/endpoint/presets-publisher-get"},{"title":"Update preset publisher","sidebarTitle":"Update publisher","openapi":"openapi/v1/openapi.yaml PUT /presets/publisher","href":"/v1/api-reference/endpoint/presets-publisher-update"}]},{"group":"Private Models","expanded":false,"pages":[{"title":"Create a private model","sidebarTitle":"Create private model","openapi":"openapi/v1/openapi.yaml POST /private-models","href":"/v1/api-reference/endpoint/private-models-create"},{"title":"Get a private model","sidebarTitle":"Get private model","openapi":"openapi/v1/openapi.yaml GET /private-models/{id}","href":"/v1/api-reference/endpoint/private-models-get"},{"title":"Update a private model","sidebarTitle":"Update private model","openapi":"openapi/v1/openapi.yaml PATCH /private-models/{id}","href":"/v1/api-reference/endpoint/private-models-update"},{"title":"Delete a private model","sidebarTitle":"Delete private model","openapi":"openapi/v1/openapi.yaml DELETE /private-models/{id}","href":"/v1/api-reference/endpoint/private-models-delete"},{"title":"List private models","sidebarTitle":"List private models","openapi":"openapi/v1/openapi.yaml GET /private-models","href":"/v1/api-reference/endpoint/private-models-list"}]},{"group":"Provider credentials","expanded":false,"pages":[{"title":"Create provider credential","sidebarTitle":"Create credential","openapi":"openapi/v1/openapi.yaml POST /byok","href":"/v1/api-reference/endpoint/provider-credentials-create"},{"title":"Get provider credential","sidebarTitle":"Get credential","openapi":"openapi/v1/openapi.yaml GET /byok/{id}","href":"/v1/api-reference/endpoint/provider-credentials-get"},{"title":"Update provider credential","sidebarTitle":"Update credential","openapi":"openapi/v1/openapi.yaml PATCH /byok/{id}","href":"/v1/api-reference/endpoint/provider-credentials-update"},{"title":"Reorder provider credentials","sidebarTitle":"Reorder credentials","openapi":"openapi/v1/openapi.yaml POST /byok/reorder","href":"/v1/api-reference/endpoint/provider-credentials-reorder"},{"title":"Delete provider credential","sidebarTitle":"Delete credential","openapi":"openapi/v1/openapi.yaml DELETE /byok/{id}","href":"/v1/api-reference/endpoint/provider-credentials-delete"},{"title":"List provider credentials","sidebarTitle":"List credentials","openapi":"openapi/v1/openapi.yaml GET /byok","href":"/v1/api-reference/endpoint/provider-credentials-list"}]},{"group":"Guardrails","expanded":false,"pages":[{"icon":"shield-check","title":"Guardrails API","sidebarTitle":"Overview","href":"/v1/api-reference/endpoint/guardrails"},{"title":"Create guardrail","sidebarTitle":"Create guardrail","openapi":"openapi/v1/openapi.yaml POST /guardrails","href":"/v1/api-reference/endpoint/guardrails-create"},{"title":"Get guardrail","sidebarTitle":"Get guardrail","openapi":"openapi/v1/openapi.yaml GET /guardrails/{id}","href":"/v1/api-reference/endpoint/guardrails-get"},{"title":"Update guardrail","sidebarTitle":"Update guardrail","openapi":"openapi/v1/openapi.yaml PATCH /guardrails/{id}","href":"/v1/api-reference/endpoint/guardrails-update"},{"title":"Delete guardrail","sidebarTitle":"Delete guardrail","openapi":"openapi/v1/openapi.yaml DELETE /guardrails/{id}","href":"/v1/api-reference/endpoint/guardrails-delete"},{"title":"List guardrails","sidebarTitle":"List guardrails","openapi":"openapi/v1/openapi.yaml GET /guardrails","href":"/v1/api-reference/endpoint/guardrails-list"},{"title":"Add guardrail keys","sidebarTitle":"Add assigned keys","openapi":"openapi/v1/openapi.yaml POST /guardrails/{id}/keys/add","href":"/v1/api-reference/endpoint/guardrail-keys-add"},{"title":"Replace guardrail keys","sidebarTitle":"Replace assigned keys","openapi":"openapi/v1/openapi.yaml PUT /guardrails/{id}/keys","href":"/v1/api-reference/endpoint/guardrail-keys-replace"},{"title":"Remove guardrail keys","sidebarTitle":"Remove assigned keys","openapi":"openapi/v1/openapi.yaml POST /guardrails/{id}/keys/remove","href":"/v1/api-reference/endpoint/guardrail-keys-remove"},{"title":"List guardrail keys","sidebarTitle":"List assigned keys","openapi":"openapi/v1/openapi.yaml GET /guardrails/{id}/keys","href":"/v1/api-reference/endpoint/guardrail-keys-list"},{"title":"Add guardrail members","sidebarTitle":"Add assigned members","openapi":"openapi/v1/openapi.yaml POST /guardrails/{id}/members/add","href":"/v1/api-reference/endpoint/guardrail-members-add"},{"title":"Remove guardrail members","sidebarTitle":"Remove assigned members","openapi":"openapi/v1/openapi.yaml POST /guardrails/{id}/members/remove","href":"/v1/api-reference/endpoint/guardrail-members-remove"},{"title":"List guardrail members","sidebarTitle":"List assigned members","openapi":"openapi/v1/openapi.yaml GET /guardrails/{id}/members","href":"/v1/api-reference/endpoint/guardrail-members-list"}]}]},{"group":"Usage \u0026 Monitoring","icon":"chart-no-axes-combined","pages":[{"group":"Usage \u0026 Analytics","expanded":true,"pages":[{"title":"Get a generation","sidebarTitle":"Get a generation","openapi":"openapi/v1/openapi.yaml GET /generations","href":"/v1/api-reference/endpoint/generation"},{"title":"List activity","sidebarTitle":"List activity","openapi":"openapi/v1/openapi.yaml GET /activity","href":"/v1/api-reference/endpoint/activity"},{"title":"List workspace audit events","sidebarTitle":"Audit events","openapi":"openapi/v1/openapi.yaml GET /audit-events","href":"/v1/api-reference/endpoint/audit-events"},{"title":"Get workspace analytics","sidebarTitle":"Get analytics","openapi":"openapi/v1/openapi.yaml GET /analytics","href":"/v1/api-reference/endpoint/analytics-get"},{"title":"Export workspace analytics","sidebarTitle":"Export analytics","openapi":"openapi/v1/openapi.yaml GET /analytics/export","href":"/v1/api-reference/endpoint/analytics-export"},{"title":"Check Gateway health","sidebarTitle":"Health check","openapi":"openapi/v1/openapi.yaml GET /health","href":"/v1/api-reference/endpoint/health"}]},{"group":"Logs","expanded":true,"pages":[{"title":"List gateway request logs","tag":"Beta","openapi":"openapi/v1/openapi.yaml GET /logs","href":"/v1/api-reference/endpoint/logs-list"},{"title":"Get gateway request log","tag":"Beta","openapi":"openapi/v1/openapi.yaml GET /logs/{requestId}","href":"/v1/api-reference/endpoint/logs-get"}]},{"group":"Observability","expanded":true,"pages":[{"title":"Get observability logging policy","sidebarTitle":"Get logging policy","openapi":"openapi/v1/openapi.yaml GET /observability/logging-policy","href":"/v1/api-reference/endpoint/observability-logging-policy-get"},{"title":"Update observability logging policy","sidebarTitle":"Update logging policy","openapi":"openapi/v1/openapi.yaml PATCH /observability/logging-policy","href":"/v1/api-reference/endpoint/observability-logging-policy-update"},{"title":"Create observability destination","sidebarTitle":"Create destination","openapi":"openapi/v1/openapi.yaml POST /observability/destinations","href":"/v1/api-reference/endpoint/observability-destinations-create"},{"title":"Get observability destination","sidebarTitle":"Get destination","openapi":"openapi/v1/openapi.yaml GET /observability/destinations/{id}","href":"/v1/api-reference/endpoint/observability-destinations-get"},{"title":"Update observability destination","sidebarTitle":"Update destination","openapi":"openapi/v1/openapi.yaml PATCH /observability/destinations/{id}","href":"/v1/api-reference/endpoint/observability-destinations-update"},{"title":"Delete observability destination","sidebarTitle":"Delete destination","openapi":"openapi/v1/openapi.yaml DELETE /observability/destinations/{id}","href":"/v1/api-reference/endpoint/observability-destinations-delete"},{"title":"List observability destinations","sidebarTitle":"List destinations","openapi":"openapi/v1/openapi.yaml GET /observability/destinations","href":"/v1/api-reference/endpoint/observability-destinations-list"},{"title":"Test destination settings","sidebarTitle":"Test destination settings","openapi":"openapi/v1/openapi.yaml POST /observability/destinations/test","href":"/v1/api-reference/endpoint/observability-destinations-test-config"},{"title":"Check a destination's connection","sidebarTitle":"Check destination connection","openapi":"openapi/v1/openapi.yaml POST /observability/destinations/{id}/test","href":"/v1/api-reference/endpoint/observability-destinations-test"},{"title":"Send a sample trace","sidebarTitle":"Send sample trace","openapi":"openapi/v1/openapi.yaml POST /observability/destinations/{id}/sample","href":"/v1/api-reference/endpoint/observability-destinations-sample"},{"title":"Test a request classifier","sidebarTitle":"Test classifier","openapi":"openapi/v1/openapi.yaml POST /classifiers/test","href":"/v1/api-reference/endpoint/classifiers-test"}]},{"group":"Feedback \u0026 Evaluations","tag":"Beta","expanded":false,"pages":[{"title":"Create gateway feedback","openapi":"openapi/v1/openapi.yaml POST /feedback","href":"/v1/api-reference/endpoint/feedback-create"},{"title":"List gateway feedback","openapi":"openapi/v1/openapi.yaml GET /feedback","href":"/v1/api-reference/endpoint/feedback-list"},{"title":"Summarize gateway feedback","openapi":"openapi/v1/openapi.yaml GET /feedback/summary","href":"/v1/api-reference/endpoint/feedback-summary"},{"title":"Create observability event","openapi":"openapi/v1/openapi.yaml POST /events","href":"/v1/api-reference/endpoint/events-create"},{"title":"List observability events","openapi":"openapi/v1/openapi.yaml GET /events","href":"/v1/api-reference/endpoint/events-list"},{"title":"Create preset test run","openapi":"openapi/v1/openapi.yaml POST /preset-test-runs","href":"/v1/api-reference/endpoint/preset-test-run-create"},{"title":"Get preset test run","openapi":"openapi/v1/openapi.yaml GET /preset-test-runs/{id}","href":"/v1/api-reference/endpoint/preset-test-run-get"},{"title":"Update preset test run","openapi":"openapi/v1/openapi.yaml PATCH /preset-test-runs/{id}","href":"/v1/api-reference/endpoint/preset-test-run-update"},{"title":"List preset test runs","openapi":"openapi/v1/openapi.yaml GET /preset-test-runs","href":"/v1/api-reference/endpoint/preset-test-runs-list"}]}]},{"group":"Workspace Management","icon":"users","pages":[{"group":"Workspaces","expanded":false,"pages":[{"title":"Create a workspace","sidebarTitle":"Create a workspace","openapi":"openapi/v1/openapi.yaml POST /workspaces","href":"/v1/api-reference/endpoint/workspaces-create"},{"title":"Get a workspace","sidebarTitle":"Get a workspace","openapi":"openapi/v1/openapi.yaml GET /workspaces/{id}","href":"/v1/api-reference/endpoint/workspaces-get"},{"title":"Update a workspace","sidebarTitle":"Update a workspace","openapi":"openapi/v1/openapi.yaml PATCH /workspaces/{id}","href":"/v1/api-reference/endpoint/workspaces-update"},{"title":"Delete a workspace","sidebarTitle":"Delete a workspace","openapi":"openapi/v1/openapi.yaml DELETE /workspaces/{id}","href":"/v1/api-reference/endpoint/workspaces-delete"},{"title":"List workspaces","sidebarTitle":"List workspaces","openapi":"openapi/v1/openapi.yaml GET /workspaces","href":"/v1/api-reference/endpoint/workspaces-list"},{"title":"Add workspace members","sidebarTitle":"Add members","openapi":"openapi/v1/openapi.yaml POST /workspaces/{id}/members/add","href":"/v1/api-reference/endpoint/workspace-members-add"},{"title":"Update workspace member role","sidebarTitle":"Update member role","openapi":"openapi/v1/openapi.yaml PATCH /workspaces/{id}/members/{user_id}","href":"/v1/api-reference/endpoint/workspace-member-role-update"},{"title":"Remove workspace members","sidebarTitle":"Remove members","openapi":"openapi/v1/openapi.yaml POST /workspaces/{id}/members/remove","href":"/v1/api-reference/endpoint/workspace-members-remove"},{"title":"List workspace members","sidebarTitle":"List members","openapi":"openapi/v1/openapi.yaml GET /workspaces/{id}/members","href":"/v1/api-reference/endpoint/workspace-members-list"},{"title":"Create workspace invite","sidebarTitle":"Create invite","openapi":"openapi/v1/openapi.yaml POST /workspaces/{id}/invites","href":"/v1/api-reference/endpoint/workspace-invites-create"},{"title":"Delete workspace invite","sidebarTitle":"Delete invite","openapi":"openapi/v1/openapi.yaml DELETE /workspaces/{id}/invites/{invite_id}","href":"/v1/api-reference/endpoint/workspace-invites-delete"},{"title":"List workspace invites","sidebarTitle":"List invites","openapi":"openapi/v1/openapi.yaml GET /workspaces/{id}/invites","href":"/v1/api-reference/endpoint/workspace-invites-list"},{"title":"List workspace join requests","sidebarTitle":"List join requests","openapi":"openapi/v1/openapi.yaml GET /workspaces/{id}/join-requests","href":"/v1/api-reference/endpoint/workspace-join-requests-list"},{"title":"Approve workspace join request","sidebarTitle":"Approve join request","openapi":"openapi/v1/openapi.yaml POST /workspaces/{id}/join-requests/{request_id}/approve","href":"/v1/api-reference/endpoint/workspace-join-request-approve"},{"title":"Reject workspace join request","sidebarTitle":"Reject join request","openapi":"openapi/v1/openapi.yaml POST /workspaces/{id}/join-requests/{request_id}/reject","href":"/v1/api-reference/endpoint/workspace-join-request-reject"},{"title":"Accept a workspace invite","sidebarTitle":"Accept invite","openapi":"openapi/v1/openapi.yaml POST /invites/accept","href":"/v1/api-reference/endpoint/invites-accept"},{"title":"List your join requests","sidebarTitle":"List your join requests","openapi":"openapi/v1/openapi.yaml GET /invites/requests","href":"/v1/api-reference/endpoint/invites-requests-list"},{"title":"Get the rate limit tier","sidebarTitle":"Get rate limit tier","openapi":"openapi/v1/openapi.yaml GET /rate-limits/tier","href":"/v1/api-reference/endpoint/rate-limits-tier-get"},{"title":"Raise the rate limit tier","sidebarTitle":"Raise rate limit tier","openapi":"openapi/v1/openapi.yaml POST /rate-limits/tier/raise","href":"/v1/api-reference/endpoint/rate-limits-tier-raise"}]},{"group":"API Keys","expanded":false,"pages":[{"title":"Get current API key","sidebarTitle":"Get current API key","openapi":"openapi/v1/openapi.yaml GET /key","href":"/v1/api-reference/endpoint/key-current"},{"title":"Create API key","sidebarTitle":"Create API key","openapi":"openapi/v1/openapi.yaml POST /keys","href":"/v1/api-reference/endpoint/keys-create"},{"title":"Get API key","sidebarTitle":"Get API key","openapi":"openapi/v1/openapi.yaml GET /keys/{id}","href":"/v1/api-reference/endpoint/keys-get"},{"title":"Update API key","sidebarTitle":"Update API key","openapi":"openapi/v1/openapi.yaml PATCH /keys/{id}","href":"/v1/api-reference/endpoint/keys-update"},{"title":"Rotate API key","openapi":"openapi/v1/openapi.yaml POST /keys/{id}/rotate","href":"/v1/api-reference/endpoint/keys-rotate"},{"title":"Invalidate API key cache","openapi":"openapi/v1/openapi.yaml POST /keys/{id}/invalidate","href":"/v1/api-reference/endpoint/keys-invalidate"},{"title":"Delete API key","sidebarTitle":"Delete API key","openapi":"openapi/v1/openapi.yaml DELETE /keys/{id}","href":"/v1/api-reference/endpoint/keys-delete"},{"title":"List API keys","sidebarTitle":"List API keys","openapi":"openapi/v1/openapi.yaml GET /keys","href":"/v1/api-reference/endpoint/keys-list"},{"title":"Report a leaked API key","sidebarTitle":"Report leaked key","openapi":"openapi/v1/openapi.yaml POST /security/report-leaked-key","href":"/v1/api-reference/endpoint/security-report-leaked-key"},{"title":"List trusted workload policies","sidebarTitle":"List trusted workload policies","openapi":"openapi/v1/openapi.yaml GET /workload-identity/policies","href":"/v1/api-reference/endpoint/trusted-workloads-list"},{"title":"Create trusted workload policy","sidebarTitle":"Create trusted workload policy","openapi":"openapi/v1/openapi.yaml POST /workload-identity/policies","href":"/v1/api-reference/endpoint/trusted-workloads-create"},{"title":"Get trusted workload policy","sidebarTitle":"Get trusted workload policy","openapi":"openapi/v1/openapi.yaml GET /workload-identity/policies/{id}","href":"/v1/api-reference/endpoint/trusted-workloads-get"},{"title":"Update trusted workload policy","sidebarTitle":"Update trusted workload policy","openapi":"openapi/v1/openapi.yaml PATCH /workload-identity/policies/{id}","href":"/v1/api-reference/endpoint/trusted-workloads-update"},{"title":"Delete trusted workload policy","sidebarTitle":"Delete trusted workload policy","openapi":"openapi/v1/openapi.yaml DELETE /workload-identity/policies/{id}","href":"/v1/api-reference/endpoint/trusted-workloads-delete"}]},{"group":"Management Keys","expanded":false,"pages":[{"title":"Create management key","sidebarTitle":"Create management key","openapi":"openapi/v1/openapi.yaml POST /management-keys","href":"/v1/api-reference/endpoint/management-keys-create"},{"title":"Get management key","sidebarTitle":"Get management key","openapi":"openapi/v1/openapi.yaml GET /management-keys/{id}","href":"/v1/api-reference/endpoint/management-keys-get"},{"title":"Update management key","sidebarTitle":"Update management key","openapi":"openapi/v1/openapi.yaml PATCH /management-keys/{id}","href":"/v1/api-reference/endpoint/management-keys-update"},{"title":"Delete management key","sidebarTitle":"Delete management key","openapi":"openapi/v1/openapi.yaml DELETE /management-keys/{id}","href":"/v1/api-reference/endpoint/management-keys-delete"},{"title":"List management keys","sidebarTitle":"List management keys","openapi":"openapi/v1/openapi.yaml GET /management-keys","href":"/v1/api-reference/endpoint/management-keys-list"}]},{"group":"Credits \u0026 Budgets","expanded":false,"pages":[{"title":"Get credits","sidebarTitle":"Get credits","openapi":"openapi/v1/openapi.yaml GET /credits","href":"/v1/api-reference/endpoint/credits"},{"title":"Create a workspace budget","sidebarTitle":"Create budget","openapi":"openapi/v1/openapi.yaml POST /budgets","href":"/v1/api-reference/endpoint/budgets-create"},{"title":"Get a workspace budget","sidebarTitle":"Get budget","openapi":"openapi/v1/openapi.yaml GET /budgets/{id}","href":"/v1/api-reference/endpoint/budgets-get"},{"title":"Update a workspace budget","sidebarTitle":"Update budget","openapi":"openapi/v1/openapi.yaml PATCH /budgets/{id}","href":"/v1/api-reference/endpoint/budgets-update"},{"title":"Delete a workspace budget","sidebarTitle":"Delete budget","openapi":"openapi/v1/openapi.yaml DELETE /budgets/{id}","href":"/v1/api-reference/endpoint/budgets-delete"},{"title":"List workspace budgets","sidebarTitle":"List budgets","openapi":"openapi/v1/openapi.yaml GET /budgets","href":"/v1/api-reference/endpoint/budgets-list"}]},{"group":"OAuth Applications","tag":"Beta","expanded":false,"pages":[{"title":"Create OAuth client","openapi":"openapi/v1/openapi.yaml POST /oauth-clients","href":"/v1/api-reference/endpoint/oauth-clients-create"},{"title":"Get OAuth client","openapi":"openapi/v1/openapi.yaml GET /oauth-clients/{client_id}","href":"/v1/api-reference/endpoint/oauth-clients-get"},{"title":"Update OAuth client","openapi":"openapi/v1/openapi.yaml PATCH /oauth-clients/{client_id}","href":"/v1/api-reference/endpoint/oauth-clients-update"},{"title":"Regenerate OAuth secret","openapi":"openapi/v1/openapi.yaml POST /oauth-clients/{client_id}/regenerate-secret","href":"/v1/api-reference/endpoint/oauth-clients-regenerate-secret"},{"title":"Delete OAuth client","openapi":"openapi/v1/openapi.yaml DELETE /oauth-clients/{client_id}","href":"/v1/api-reference/endpoint/oauth-clients-delete"},{"title":"List OAuth clients","openapi":"openapi/v1/openapi.yaml GET /oauth-clients","href":"/v1/api-reference/endpoint/oauth-clients-list"},{"title":"Get the signed-in user","sidebarTitle":"Get signed-in user","openapi":"openapi/v1/openapi.yaml GET /me","href":"/v1/api-reference/endpoint/me-get"},{"title":"Get your profile","sidebarTitle":"Get profile","openapi":"openapi/v1/openapi.yaml GET /me/profile","href":"/v1/api-reference/endpoint/profile-get"},{"title":"Update your profile","sidebarTitle":"Update profile","openapi":"openapi/v1/openapi.yaml PATCH /me/profile","href":"/v1/api-reference/endpoint/profile-update"},{"title":"List authorized apps","sidebarTitle":"List authorized apps","openapi":"openapi/v1/openapi.yaml GET /me/authorized-apps","href":"/v1/api-reference/endpoint/authorized-apps-list"},{"title":"Remove scopes from an authorized app","sidebarTitle":"Reduce app scopes","openapi":"openapi/v1/openapi.yaml PATCH /me/authorized-apps/{id}","href":"/v1/api-reference/endpoint/authorized-apps-update-scopes"},{"title":"Revoke an authorized app","sidebarTitle":"Revoke authorized app","openapi":"openapi/v1/openapi.yaml DELETE /me/authorized-apps/{id}","href":"/v1/api-reference/endpoint/authorized-apps-revoke"}]},{"group":"SSO \u0026 SCIM","tag":"Beta","expanded":false,"pages":[{"title":"Get workspace SSO","openapi":"openapi/v1/openapi.yaml GET /identity/sso","href":"/v1/api-reference/endpoint/identity-sso-get"},{"title":"Update workspace SSO","openapi":"openapi/v1/openapi.yaml PUT /identity/sso","href":"/v1/api-reference/endpoint/identity-sso-update"},{"title":"Get workspace SCIM","openapi":"openapi/v1/openapi.yaml GET /identity/scim","href":"/v1/api-reference/endpoint/identity-scim-get"},{"title":"Update workspace SCIM","openapi":"openapi/v1/openapi.yaml PUT /identity/scim","href":"/v1/api-reference/endpoint/identity-scim-update"},{"title":"Create SCIM token","openapi":"openapi/v1/openapi.yaml POST /identity/scim/tokens","href":"/v1/api-reference/endpoint/identity-scim-token-create"},{"title":"Revoke SCIM token","openapi":"openapi/v1/openapi.yaml DELETE /identity/scim/tokens/{id}","href":"/v1/api-reference/endpoint/identity-scim-token-revoke"},{"title":"List SCIM audit events","openapi":"openapi/v1/openapi.yaml GET /identity/scim/audit","href":"/v1/api-reference/endpoint/identity-scim-audit-list"}]},{"group":"Directory \u0026 Departments","tag":"Beta","expanded":false,"pages":[{"title":"Get workspace directory","openapi":"openapi/v1/openapi.yaml GET /identity/directory","href":"/v1/api-reference/endpoint/identity-directory-get"},{"title":"Update directory member","openapi":"openapi/v1/openapi.yaml PUT /identity/directory/members/{id}","href":"/v1/api-reference/endpoint/identity-directory-member-update"},{"title":"Create workspace department","openapi":"openapi/v1/openapi.yaml POST /identity/departments","href":"/v1/api-reference/endpoint/identity-department-create"},{"title":"Update workspace department","openapi":"openapi/v1/openapi.yaml PATCH /identity/departments/{id}","href":"/v1/api-reference/endpoint/identity-department-update"},{"title":"Delete workspace department","openapi":"openapi/v1/openapi.yaml DELETE /identity/departments/{id}","href":"/v1/api-reference/endpoint/identity-department-delete"},{"title":"List workspace departments","openapi":"openapi/v1/openapi.yaml GET /identity/departments","href":"/v1/api-reference/endpoint/identity-departments-list"},{"title":"Set department membership","openapi":"openapi/v1/openapi.yaml PUT /identity/departments/{departmentId}/members/{userId}","href":"/v1/api-reference/endpoint/identity-department-member-set"},{"title":"Delete department membership","openapi":"openapi/v1/openapi.yaml DELETE /identity/departments/{departmentId}/members/{userId}","href":"/v1/api-reference/endpoint/identity-department-member-delete"},{"title":"Create directory group mapping","openapi":"openapi/v1/openapi.yaml POST /identity/group-mappings","href":"/v1/api-reference/endpoint/identity-group-mapping-create"},{"title":"Update directory group mapping","openapi":"openapi/v1/openapi.yaml PATCH /identity/group-mappings/{id}","href":"/v1/api-reference/endpoint/identity-group-mapping-update"},{"title":"Delete directory group mapping","openapi":"openapi/v1/openapi.yaml DELETE /identity/group-mappings/{id}","href":"/v1/api-reference/endpoint/identity-group-mapping-delete"},{"title":"List directory group mappings","openapi":"openapi/v1/openapi.yaml GET /identity/group-mappings","href":"/v1/api-reference/endpoint/identity-group-mappings-list"}]},{"group":"Notifications","tag":"Beta","expanded":false,"pages":[{"title":"Get notification settings","openapi":"openapi/v1/openapi.yaml GET /notifications/settings","href":"/v1/api-reference/endpoint/notifications-settings-get"},{"title":"Update notification settings","openapi":"openapi/v1/openapi.yaml PATCH /notifications/settings","href":"/v1/api-reference/endpoint/notifications-settings-update"},{"title":"Create notification destination","openapi":"openapi/v1/openapi.yaml POST /notifications/destinations","href":"/v1/api-reference/endpoint/notifications-destination-create"},{"title":"Test destination configuration","openapi":"openapi/v1/openapi.yaml POST /notifications/destinations/test","href":"/v1/api-reference/endpoint/notifications-destination-config-test"},{"title":"Test notification destination","openapi":"openapi/v1/openapi.yaml POST /notifications/destinations/{id}/test","href":"/v1/api-reference/endpoint/notifications-destination-test"},{"title":"Rotate notification webhook secret","openapi":"openapi/v1/openapi.yaml POST /notifications/destinations/{id}/rotate-secret","href":"/v1/api-reference/endpoint/notifications-destination-rotate-secret"},{"title":"Delete notification destination","openapi":"openapi/v1/openapi.yaml DELETE /notifications/destinations/{id}","href":"/v1/api-reference/endpoint/notifications-destination-delete"},{"title":"List notification destinations","openapi":"openapi/v1/openapi.yaml GET /notifications/destinations","href":"/v1/api-reference/endpoint/notifications-destinations-list"},{"title":"List notification routes","openapi":"openapi/v1/openapi.yaml GET /notifications/routes","href":"/v1/api-reference/endpoint/notifications-routes-list"},{"title":"Update notification route","openapi":"openapi/v1/openapi.yaml PUT /notifications/routes/{eventKind}","href":"/v1/api-reference/endpoint/notifications-route-update"}]},{"group":"Applications","tag":"Beta","expanded":false,"pages":[{"title":"List workspace applications","openapi":"openapi/v1/openapi.yaml GET /apps","href":"/v1/api-reference/endpoint/apps-list"},{"title":"Update workspace application","openapi":"openapi/v1/openapi.yaml PATCH /apps/{id}","href":"/v1/api-reference/endpoint/app-update"},{"title":"Merge workspace applications","openapi":"openapi/v1/openapi.yaml POST /apps/{id}/merge","href":"/v1/api-reference/endpoint/app-merge"}]},{"group":"Data Contribution","tag":"Beta","expanded":false,"pages":[{"title":"Get data contribution settings","openapi":"openapi/v1/openapi.yaml GET /data-contribution","href":"/v1/api-reference/endpoint/data-contribution-get"},{"title":"Update data contribution consent","openapi":"openapi/v1/openapi.yaml PATCH /data-contribution/consent","href":"/v1/api-reference/endpoint/data-contribution-consent-update"},{"title":"Create data contribution classifier","openapi":"openapi/v1/openapi.yaml POST /data-contribution/classifiers","href":"/v1/api-reference/endpoint/data-contribution-classifier-create"},{"title":"Update data contribution classifier","openapi":"openapi/v1/openapi.yaml PATCH /data-contribution/classifiers/{id}","href":"/v1/api-reference/endpoint/data-contribution-classifier-update"},{"title":"Delete data contribution classifier","openapi":"openapi/v1/openapi.yaml DELETE /data-contribution/classifiers/{id}","href":"/v1/api-reference/endpoint/data-contribution-classifier-delete"}]}]}]},{"tab":"Client SDKs","icon":"package","menu":[{"item":"AI SDK (Vercel)","icon":"https://mintlify.s3.us-west-1.amazonaws.com/aistats/icons/brands/vercel.svg","pages":[{"title":"AI SDK (Vercel)","href":"/v1/sdk-reference/sdk/ai-sdk"}]},{"item":"TypeScript SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/aistats/icons/languages/typescript.svg","pages":[{"title":"TypeScript SDK","href":"/v1/sdk-reference/typescript/overview"}]},{"item":"Python SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/aistats/icons/languages/python.svg","pages":[{"title":"Python SDK","href":"/v1/sdk-reference/python/overview"}]},{"item":"Go SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/aistats/icons/languages/go.svg","pages":[{"title":"Go SDK","href":"/v1/sdk-reference/go/overview"}]},{"item":"C# SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/aistats/icons/languages/csharp.svg","pages":[{"title":"C# SDK","href":"/v1/sdk-reference/csharp/overview"}]},{"item":"PHP SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/aistats/icons/languages/php.svg","pages":[{"title":"PHP SDK","href":"/v1/sdk-reference/php/overview"}]},{"item":"Ruby SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/aistats/icons/languages/ruby.svg","pages":[{"title":"Ruby SDK","href":"/v1/sdk-reference/ruby/overview"}]},{"item":"Java SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/aistats/icons/languages/java.svg","pages":[{"title":"Java SDK","href":"/v1/sdk-reference/java/overview"}]},{"item":"Rust SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/aistats/icons/languages/rust.svg","pages":[{"title":"Rust SDK","href":"/v1/sdk-reference/rust/overview"}]}],"pages":[{"title":"Client SDKs","href":"/v1/sdk-reference/sdk/ai-sdk"}]},{"tab":"Agent SDK","icon":"bot","menu":[{"item":"Overview","icon":"compass","pages":[{"title":"Overview","href":"/v1/sdk-reference/agent-sdk/overview"}]},{"item":"TypeScript Agent SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/aistats/icons/languages/typescript.svg","pages":[{"title":"TypeScript Agent SDK","href":"/v1/sdk-reference/typescript/agent-sdk-overview"}]},{"item":"Python Agent SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/aistats/icons/languages/python.svg","pages":[{"title":"Python Agent SDK","href":"/v1/sdk-reference/python/agent-sdk-overview"}]},{"item":"Go Agent SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/aistats/icons/languages/go.svg","pages":[{"title":"Go Agent SDK","href":"/v1/sdk-reference/go/agent-sdk-overview"}]},{"item":"C# Agent SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/aistats/icons/languages/csharp.svg","pages":[{"title":"C# Agent SDK","href":"/v1/sdk-reference/csharp/agent-sdk-overview"}]},{"item":"PHP Agent SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/aistats/icons/languages/php.svg","pages":[{"title":"PHP Agent SDK","href":"/v1/sdk-reference/php/agent-sdk-overview"}]},{"item":"Ruby Agent SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/aistats/icons/languages/ruby.svg","pages":[{"title":"Ruby Agent SDK","href":"/v1/sdk-reference/ruby/agent-sdk-overview"}]},{"item":"Rust Agent SDK","icon":"https://mintlify.s3.us-west-1.amazonaws.com/aistats/icons/languages/rust.svg","pages":[{"title":"Rust Agent SDK","href":"/v1/sdk-reference/rust/agent-sdk-overview"}]}],"pages":[{"title":"Agent SDK","href":"/v1/sdk-reference/agent-sdk/overview"}]},{"tab":"Cookbook","icon":"chef-hat","pages":[{"title":"Cookbook","href":"/v1/cookbook"}]},{"tab":"Changelog","icon":"history","pages":[{"title":"Changelog","href":"/v1/changelog"}]}]},{"language":"es","footer":{"socials":{"x":"https://x.com/phaseoteam","github":"https://github.com/phaseoteam/Phaseo","discord":"https://discord.gg/aQyywCvgZ5","linkedin":"https://www.linkedin.com/company/phaseoapp","reddit":"https://www.reddit.com/r/Phaseo"},"links":[{"items":[{"label":"Modelos","href":"https://phaseo.app/es-ES/models"},{"label":"Estado","href":"https://status.phaseo.app"},{"label":"Soporte","href":"https://phaseo.app/es-ES/help"}]}]},"navbar":{"primary":{"type":"button","label":"Obtener clave de API","href":"https://phaseo.app/es-ES/settings/keys"}},"pages":[{"title":"es","href":"/es/v1/api-reference/endpoint/anthropic-messages"}]},{"language":"fr","footer":{"socials":{"x":"https://x.com/phaseoteam","github":"https://github.com/phaseoteam/Phaseo","discord":"https://discord.gg/aQyywCvgZ5","linkedin":"https://www.linkedin.com/company/phaseoapp","reddit":"https://www.reddit.com/r/Phaseo"},"links":[{"items":[{"label":"Modèles","href":"https://phaseo.app/fr-FR/models"},{"label":"État","href":"https://status.phaseo.app"},{"label":"Assistance","href":"https://phaseo.app/fr-FR/help"}]}]},"navbar":{"primary":{"type":"button","label":"Obtenir une clé API","href":"https://phaseo.app/fr-FR/settings/keys"}},"pages":[{"title":"fr","href":"/fr/v1/api-reference/endpoint/anthropic-messages"}]},{"language":"de","footer":{"socials":{"x":"https://x.com/phaseoteam","github":"https://github.com/phaseoteam/Phaseo","discord":"https://discord.gg/aQyywCvgZ5","linkedin":"https://www.linkedin.com/company/phaseoapp","reddit":"https://www.reddit.com/r/Phaseo"},"links":[{"items":[{"label":"Modelle","href":"https://phaseo.app/de-DE/models"},{"label":"Status","href":"https://status.phaseo.app"},{"label":"Support","href":"https://phaseo.app/de-DE/help"}]}]},"navbar":{"primary":{"type":"button","label":"API-Schlüssel erstellen","href":"https://phaseo.app/de-DE/settings/keys"}},"pages":[{"title":"de","href":"/de/v1/api-reference/endpoint/anthropic-messages"}]},{"language":"pt-BR","footer":{"socials":{"x":"https://x.com/phaseoteam","github":"https://github.com/phaseoteam/Phaseo","discord":"https://discord.gg/aQyywCvgZ5","linkedin":"https://www.linkedin.com/company/phaseoapp","reddit":"https://www.reddit.com/r/Phaseo"},"links":[{"items":[{"label":"Modelos","href":"https://phaseo.app/pt-BR/models"},{"label":"Status","href":"https://status.phaseo.app"},{"label":"Suporte","href":"https://phaseo.app/pt-BR/help"}]}]},"navbar":{"primary":{"type":"button","label":"Obter chave de API","href":"https://phaseo.app/pt-BR/settings/keys"}},"pages":[{"title":"pt-BR","href":"/pt-BR/v1/api-reference/endpoint/anthropic-messages"}]},{"language":"ja","footer":{"socials":{"x":"https://x.com/phaseoteam","github":"https://github.com/phaseoteam/Phaseo","discord":"https://discord.gg/aQyywCvgZ5","linkedin":"https://www.linkedin.com/company/phaseoapp","reddit":"https://www.reddit.com/r/Phaseo"},"links":[{"items":[{"label":"モデル","href":"https://phaseo.app/ja/models"},{"label":"ステータス","href":"https://status.phaseo.app"},{"label":"サポート","href":"https://phaseo.app/ja/help"}]}]},"navbar":{"primary":{"type":"button","label":"API キーを取得","href":"https://phaseo.app/ja/settings/keys"}},"pages":[{"title":"ja","href":"/ja/v1/api-reference/endpoint/anthropic-messages"}]},{"language":"zh-Hans","footer":{"socials":{"x":"https://x.com/phaseoteam","github":"https://github.com/phaseoteam/Phaseo","discord":"https://discord.gg/aQyywCvgZ5","linkedin":"https://www.linkedin.com/company/phaseoapp","reddit":"https://www.reddit.com/r/Phaseo"},"links":[{"items":[{"label":"模型","href":"https://phaseo.app/zh-Hans/models"},{"label":"状态","href":"https://status.phaseo.app"},{"label":"支持","href":"https://phaseo.app/zh-Hans/help"}]}]},"navbar":{"primary":{"type":"button","label":"获取 API 密钥","href":"https://phaseo.app/zh-Hans/settings/keys"}},"pages":[{"title":"zh-Hans","href":"/zh-Hans/v1/api-reference/endpoint/anthropic-messages"}]},{"language":"hi","footer":{"socials":{"x":"https://x.com/phaseoteam","github":"https://github.com/phaseoteam/Phaseo","discord":"https://discord.gg/aQyywCvgZ5","linkedin":"https://www.linkedin.com/company/phaseoapp","reddit":"https://www.reddit.com/r/Phaseo"},"links":[{"items":[{"label":"मॉडल","href":"https://phaseo.app/hi/models"},{"label":"स्थिति","href":"https://status.phaseo.app"},{"label":"सहायता","href":"https://phaseo.app/hi/help"}]}]},"navbar":{"primary":{"type":"button","label":"API कुंजी प्राप्त करें","href":"https://phaseo.app/hi/settings/keys"}},"pages":[{"title":"hi","href":"/hi/v1/api-reference/endpoint/anthropic-messages"}]},{"language":"ar","footer":{"socials":{"x":"https://x.com/phaseoteam","github":"https://github.com/phaseoteam/Phaseo","discord":"https://discord.gg/aQyywCvgZ5","linkedin":"https://www.linkedin.com/company/phaseoapp","reddit":"https://www.reddit.com/r/Phaseo"},"links":[{"items":[{"label":"النماذج","href":"https://phaseo.app/ar-SA/models"},{"label":"الحالة","href":"https://status.phaseo.app"},{"label":"الدعم","href":"https://phaseo.app/ar-SA/help"}]}]},"navbar":{"primary":{"type":"button","label":"احصل على مفتاح API","href":"https://phaseo.app/ar-SA/settings/keys"}},"pages":[{"title":"ar","href":"/ar/v1/api-reference/endpoint/anthropic-messages"}]}]},"basePath":"","title":"Create a message - Phaseo Docs","buildId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","deploymentId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-D_4Sesi0.js","utils-DRHeK26p.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C6d-DUc2.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dex7slho.js","snippetPresets-BcCEBp0Z.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-BoJxk0m8.js","ApiExamples-CufowNTX.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-A4lJSCIe.js","shallow-DqoHP7zn.js","getApiPlaygroundDisplay-Cku8AmtL.js","CodeSnippet-CtHQbNqc.js","CodeSnippets-CGo5Cslf.js","getPastedJson-M-bKdue4.js","icon-DEqCU4st.js","MethodPill-DnfSSXiJ.js","DuplicateIcon-BHu2PE8M.js","createIcon-BPsE5X7c.js","DynamicMarkdown-Dnt6YhtR.js","SectionHeading-6CtFWqMQ.js","axios-vUo_bRtp.js","Markdown-BoKe_1fI.js","clsx-DM5-sUNJ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CkIdkovK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-B3e6Nh_r.js"]}