curl --request POST \ --url http://localhost:8000/v1/messages \ --header 'Content-Type: application/json' \ --data '{ "messages": [ { "content": "Hello, summarize what you can do in one sentence.", "role": "user" } ]}'
import requests
url = "http://localhost:8000/v1/messages"
payload = { "messages": [
{
"content": "Hello, summarize what you can do in one sentence.",
"role": "user"
}
] }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
messages: [{content: 'Hello, summarize what you can do in one sentence.', role: 'user'}]
})
};
fetch('http://localhost:8000/v1/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:8000/v1/messages"
payload := strings.NewReader("{\n \"messages\": [\n {\n \"content\": \"Hello, summarize what you can do in one sentence.\",\n \"role\": \"user\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
{ "id": "msg_4b71d12c86d94e719c7e3984a7bb7941", "type": "message", "role": "assistant", "content": [ { "type": "text", "text": "I can answer questions, generate text, and help with coding tasks." } ], "stop_reason": "end_turn", "usage": { "input_tokens": 17, "output_tokens": 14, "cache_read_input_tokens": 0 }, "model": "zai-org/GLM-5.3"}
Generate a model response from a conversation using the Anthropic Messages API format. Supports streaming, function tool calls, and extended thinking.
POST
/
v1
/
messages
Messages
curl --request POST \ --url http://localhost:8000/v1/messages \ --header 'Content-Type: application/json' \ --data '{ "messages": [ { "content": "Hello, summarize what you can do in one sentence.", "role": "user" } ]}'
import requests
url = "http://localhost:8000/v1/messages"
payload = { "messages": [
{
"content": "Hello, summarize what you can do in one sentence.",
"role": "user"
}
] }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
messages: [{content: 'Hello, summarize what you can do in one sentence.', role: 'user'}]
})
};
fetch('http://localhost:8000/v1/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:8000/v1/messages"
payload := strings.NewReader("{\n \"messages\": [\n {\n \"content\": \"Hello, summarize what you can do in one sentence.\",\n \"role\": \"user\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
{ "id": "msg_4b71d12c86d94e719c7e3984a7bb7941", "type": "message", "role": "assistant", "content": [ { "type": "text", "text": "I can answer questions, generate text, and help with coding tasks." } ], "stop_reason": "end_turn", "usage": { "input_tokens": 17, "output_tokens": 14, "cache_read_input_tokens": 0 }, "model": "zai-org/GLM-5.3"}
Generate a model response from a conversation using the Anthropic Messages API format. Supports streaming, function tool calls, and extended thinking.
Server-side tools are not supported in the Messages API. In tools, only custom/client function tools are used; non-custom tool types are ignored.
This API is currently in Beta.
While we strive to provide a stable and reliable experience, this feature is still under active development.
As a result, you may encounter unexpected behavior or limitations.
We encourage you to provide feedback to help us improve the feature before its official release.
Tool category. If missing, empty, or custom, it is converted to a function tool. Any non-empty value other than custom is treated as a server-side tool and skipped.
Reasoning token budget. Required when type=enabled; must not be provided when type=disabled or type=adaptive. If max_tokens is set, this must be smaller than max_tokens.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"FriendliAI Docs","description":"Let your team focus on building great AI products. FriendliAI will make sure your AI runs fast, affordable, and reliable at scale. Leave the hassle of AI inference to FriendliAI.","colors":{"primary":"#2A62DB","light":"#4f87ff","dark":"#1e469b"},"logo":{"light":"https://mintcdn.com/friendliai/Xn-EfFlXFvptInk9/static/svgs/logo.svg?fit=max\u0026auto=format\u0026n=Xn-EfFlXFvptInk9\u0026q=85\u0026s=0a04a5dd2152a1258e6d3ce995b70eb0","dark":"https://mintcdn.com/friendliai/OmGyXdVnt91Gfn8z/static/svgs/logo-dark.svg?fit=max\u0026auto=format\u0026n=OmGyXdVnt91Gfn8z\u0026q=85\u0026s=7bc2b761b9c8da66973a9869b7de4f90"},"favicon":"https://mintcdn.com/friendliai/Xn-EfFlXFvptInk9/static/svgs/favicon.svg?fit=max\u0026auto=format\u0026n=Xn-EfFlXFvptInk9\u0026q=85\u0026s=d425e1903adeb917593a54eb3d20c66b","api":{"openapi":"https://github.com/friendliai/friendli-openapi/raw/refs/heads/main/openapi.yaml","params":{"expanded":"all"},"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","python","javascript","go"],"prefill":true,"autogenerate":true}},"background":{"color":{"light":"#FFFFFF","dark":"#0A101A"}},"navbar":{"primary":{"type":"button","label":"Dashboard","href":"https://friendli.ai/get-started/dedicated-endpoints"}},"footer":{"socials":{"website":"https://friendli.ai","linkedin":"https://www.linkedin.com/company/friendliai","youtube":"https://www.youtube.com/@friendliai","github":"https://github.com/friendliai","discord":"https://discord.gg/g53ByexhR","x":"https://x.com/friendliai","medium":"https://medium.com/friendliai","facebook":"https://friendli.ai/?unused-social-placeholder-required-by-zod-4-hidden-by-css","slack":"https://friendli.ai/?unused-social-placeholder-required-by-zod-4-hidden-by-css","instagram":"https://friendli.ai/?unused-social-placeholder-required-by-zod-4-hidden-by-css","hacker-news":"https://friendli.ai/?unused-social-placeholder-required-by-zod-4-hidden-by-css","telegram":"https://friendli.ai/?unused-social-placeholder-required-by-zod-4-hidden-by-css","twitter":"https://friendli.ai/?unused-social-placeholder-required-by-zod-4-hidden-by-css","x-twitter":"https://friendli.ai/?unused-social-placeholder-required-by-zod-4-hidden-by-css","earth-americas":"https://friendli.ai/?unused-social-placeholder-required-by-zod-4-hidden-by-css","bluesky":"https://friendli.ai/?unused-social-placeholder-required-by-zod-4-hidden-by-css","threads":"https://friendli.ai/?unused-social-placeholder-required-by-zod-4-hidden-by-css","reddit":"https://friendli.ai/?unused-social-placeholder-required-by-zod-4-hidden-by-css","podcast":"https://friendli.ai/?unused-social-placeholder-required-by-zod-4-hidden-by-css"}},"search":{"prompt":"Search FriendliAI Docs..."},"seo":{"metatags":{"og:site_name":"FriendliAI Docs","twitter:card":"summary_large_image"}},"integrations":{"gtm":{"tagId":"GTM-MVXVF29V"},"telemetry":{"enabled":true}},"banner":{"content":"Try [GLM-5.3](https://friendli.ai/models/zai-org/GLM-5.3) and [GLM-5.3-Flash](https://friendli.ai/models/zai-org/GLM-5.3-Flash) today. To learn more, see the [FriendliAI Blog](https://friendli.ai/blog)."},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Home","icon":"home","href":"https://friendli.ai"},{"anchor":"Models","icon":"brain","href":"https://friendli.ai/models"},{"anchor":"Pricing","icon":"tag","href":"https://friendli.ai/pricing"},{"anchor":"Blog","icon":"newspaper","href":"https://friendli.ai/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"friendliai","hasAudioNarration":false,"actualSubdomain":"friendliai","customDomains":["friendli.ai"],"gitSource":{"type":"github","owner":"friendliai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aed53e7c5ca48f8240a4b05","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"Guides","count":44},{"language":"default","tag":"Examples","count":40},{"language":"default","tag":"Reference","count":36},{"language":"default","tag":"Inference","count":30},{"language":"default","tag":"Archive","count":24},{"language":"default","tag":"Dedicated","count":24},{"language":"default","tag":"Friendli Container","count":23},{"language":"default","tag":"Agents","count":14},{"language":"default","tag":"Friendli Dedicated Endpoints","count":12},{"language":"default","tag":"API Reference","count":12}]},"assistantConfig":{"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"deflection":{"enabled":true,"email":"support@friendli.ai","showHelpButton":true}},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3yQ6H-1_WfwkMZI_qYPLs1a-t7PU0AbeE9KK5Z5ClqOw.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3yQ6H-1_WfwkMZI_qYPLs1a-t7PU0AbeE9KK5Q5ClqOw.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3yQ6H-1_WfwkMZI_qYPLs1a-t7PU0AbeE9KK7uxQxXAuk.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3yQ6H-1_WfwkMZI_qYPLs1a-t7PU0AbeE9KK5b5ClqOw.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3yQ6H-1_WfwkMZI_qYPLs1a-t7PU0AbeE9KK5a5ClqOw.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3yQ6H-1_WfwkMZI_qYPLs1a-t7PU0AbeE9KK5U5Ck.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n@font-face{font-family:\"Saans-Light\";src:url(\"https://docs-assets.friendli.ai/fonts/Saans-Light.woff2\")\n\t\tformat(\"woff2\"),\n\t\turl(\"https://docs-assets.friendli.ai/fonts/Saans-Light.woff\") format(\"woff\");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:\"Saans-Regular\";src:url(\"https://docs-assets.friendli.ai/fonts/Saans-Regular.woff2\")\n\t\tformat(\"woff2\"),\n\t\turl(\"https://docs-assets.friendli.ai/fonts/Saans-Regular.woff\")\n\t\tformat(\"woff\");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:\"Saans-Medium\";src:url(\"https://docs-assets.friendli.ai/fonts/Saans-Medium.woff2\")\n\t\tformat(\"woff2\"),\n\t\turl(\"https://docs-assets.friendli.ai/fonts/Saans-Medium.woff\")\n\t\tformat(\"woff\");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:\"Saans-SemiBold\";src:url(\"https://docs-assets.friendli.ai/fonts/Saans-SemiBold.woff2\")\n\t\tformat(\"woff2\"),\n\t\turl(\"https://docs-assets.friendli.ai/fonts/Saans-SemiBold.woff\")\n\t\tformat(\"woff\");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:\"Saans-Bold\";src:url(\"https://docs-assets.friendli.ai/fonts/Saans-Bold.woff2\")\n\t\tformat(\"woff2\"),\n\t\turl(\"https://docs-assets.friendli.ai/fonts/Saans-Bold.woff\") format(\"woff\");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:\"Saans-Heavy\";src:url(\"https://docs-assets.friendli.ai/fonts/Saans-Heavy.woff2\")\n\t\tformat(\"woff2\"),\n\t\turl(\"https://docs-assets.friendli.ai/fonts/Saans-Heavy.woff\") format(\"woff\");font-weight:800;font-style:normal;font-display:swap}:root{--gray-300: 159 179 200;--primary-accent: #0095ff}.border-gray-100{border-color:#d9e2ec}body{font-family:\"Saans-Regular\", sans-serif;letter-spacing:0.01em}.tracking-tighter{letter-spacing:-0.04em}.tracking-tight{letter-spacing:0.01em}.tracking-normal{letter-spacing:0.01em}.tracking-wide{letter-spacing:0.01em}.tracking-wider{letter-spacing:0.05em}.tracking-widest{letter-spacing:0.1em}.prose :where(h1,h2,h3):not(:where([class~=\"not-prose\"],[class~=\"not-prose\"] *)){letter-spacing:0}.font-medium:not(.font-mono):not(.font-mono *),.mint-font-medium:not(.font-mono):not(.font-mono *){font-family:\"Saans-Medium\", sans-serif}h1:not(.font-mono):not(.font-mono *),h2:not(.font-mono):not(.font-mono *),h3:not(.font-mono):not(.font-mono *),h4:not(.font-mono):not(.font-mono *),h5:not(.font-mono):not(.font-mono *),strong:not(.font-mono):not(.font-mono *),.font-semibold:not(.font-mono):not(.font-mono *),.mint-font-semibold:not(.font-mono):not(.font-mono *),.prose :where(a):not(:where([class~=\"not-prose\"],[class~=\"not-prose\"] *)):not(.font-mono):not(.font-mono *){font-family:\"Saans-SemiBold\", sans-serif}.prose :is(p,li,td,dd) svg.icon{vertical-align:-0.025em!important}.prose :is(p,li,td,dd) a[href^=\"http\"]:not([href*=\"friendli.ai\"]):not(:has(img))::after{content:\"\";display:inline-block;width:0.7em;height:0.7em;margin-left:0.2em;vertical-align:-0.05em;background-color:currentColor;-webkit-mask:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20d%3D%22M320%200c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l82.7%200-201.4%20201.4c-12.5%2012.5-12.5%2032.8%200%2045.3s32.8%2012.5%2045.3%200L448%20109.3%20448%20192c0%2017.7%2014.3%2032%2032%2032s32-14.3%2032-32l0-160c0-17.7-14.3-32-32-32L320%200zM80%2096C35.8%2096%200%20131.8%200%20176L0%20432c0%2044.2%2035.8%2080%2080%2080l256%200c44.2%200%2080-35.8%2080-80l0-80c0-17.7-14.3-32-32-32s-32%2014.3-32%2032l0%2080c0%208.8-7.2%2016-16%2016L80%20448c-8.8%200-16-7.2-16-16l0-256c0-8.8%207.2-16%2016-16l80%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32L80%2096z%22%2F%3E%3C%2Fsvg%3E\")\n\t\tno-repeat center / contain;mask:url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20d%3D%22M320%200c-17.7%200-32%2014.3-32%2032s14.3%2032%2032%2032l82.7%200-201.4%20201.4c-12.5%2012.5-12.5%2032.8%200%2045.3s32.8%2012.5%2045.3%200L448%20109.3%20448%20192c0%2017.7%2014.3%2032%2032%2032s32-14.3%2032-32l0-160c0-17.7-14.3-32-32-32L320%200zM80%2096C35.8%2096%200%20131.8%200%20176L0%20432c0%2044.2%2035.8%2080%2080%2080l256%200c44.2%200%2080-35.8%2080-80l0-80c0-17.7-14.3-32-32-32s-32%2014.3-32%2032l0%2080c0%208.8-7.2%2016-16%2016L80%20448c-8.8%200-16-7.2-16-16l0-256c0-8.8%207.2-16%2016-16l80%200c17.7%200%2032-14.3%2032-32s-14.3-32-32-32L80%2096z%22%2F%3E%3C%2Fsvg%3E\")\n\t\tno-repeat center / contain}code:not(.font-mono *),pre,kbd,.font-mono{font-family:\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Monaco, monospace}#banner{background-color:var(--primary-accent);font-size:16px;box-shadow:none}#banner>div{margin-top:0.625rem;margin-bottom:0.625rem;p {\n\t\tcolor: #ffffff;\n\t}\n\n\ta {\n\t\tcolor: #ffffff;\n\t\tfont-weight: 600;\n\t\ttext-decoration: underline;\n\t\tpadding-left: 0.25rem;\n\t}}#topbar-cta-button,#topbar-cta-button a,#topbar-cta-button.bg-primary-dark,#topbar-cta-button .bg-primary-dark{background-color:#2a62db!important;color:#ffffff!important;border:none!important;border-radius:6px;box-shadow:none!important}#topbar-cta-button:hover,#topbar-cta-button:hover a,#topbar-cta-button:hover .bg-primary-dark,#topbar-cta-button a:hover,#topbar-cta-button a:hover .bg-primary-dark,#topbar-cta-button.bg-primary-dark:hover,#topbar-cta-button .bg-primary-dark:hover{background-color:#1a4ec4!important}#topbar-cta-button>.font-medium,#topbar-cta-button>.mint-font-medium{font-family:\"Saans-Medium\", sans-serif}#header>div:not(:first-child){display:none}.card>div>div:last-child>div{margin-top:0.5rem}.card [data-component-part=\"card-content\"]{font-family:\"Saans-Regular\", sans-serif}.card-group.columns{gap:1rem}.rounded-border-box{padding:28px 44px;border:1px solid #d9e2ec;border-radius:8px;overflow:hidden;img {\n\t\tmargin: 0 auto;\n\t\tborder: 1px solid #e7eef4;\n\t\tborder-radius: 8px;\n\t}\n\n\tp {\n\t\tmargin: 12px auto -12px;\n\t\ttext-align: center;\n\t\tword-break: break-all;\n\t}}.dark .rounded-border-box{border:1px solid #243b53}.dark .rounded-border-box img{border:1px solid #212832}html[data-current-path=\"/\"] .nav-tabs-item[data-active]{text-shadow:none}html[data-current-path=\"/\"] .nav-tabs-item[data-active]>div{display:none}html[data-current-path=\"/\"] #content-container{max-width:none;padding-inline:1rem}html[data-current-path=\"/\"] #header{display:none}html[data-current-path=\"/\"] #content{margin-top:0}#footer [href=\"https://friendli.ai/?unused-social-placeholder-required-by-zod-4-hidden-by-css\"]{display:none}"}],"page":{"pagePath":"openapi/container/messages","slug":"/openapi/container/messages","pageMetadata":{"title":"Container Messages","description":"Generate a model response from a conversation using the Anthropic Messages API format. Supports streaming, function tool calls, and extended thinking.","deprecated":null,"version":null,"sidebarTitle":"Messages","og:title":"Container Messages","og:description":"Generate a model response from a conversation using the Anthropic Messages API format. Supports streaming, function tool calls, and extended thinking.","tag":"Beta","openapi":"https://github.com/friendliai/friendli-openapi/raw/refs/heads/main/openapi.yaml post /v1/messages","href":"/openapi/container/messages","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Generate a model response from a conversation using the Anthropic Messages API format. Supports streaming, function tool calls, and extended thinking.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Info,Warning}=_components;if(!Info)_missingMdxReference(`Info`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Generate a model response from a conversation using the Anthropic Messages API format. Supports streaming, function tool calls, and extended thinking.`}),`\n`,_jsxs(Warning,{children:[`Server-side tools are not supported in the Messages API. In `,_jsx(_components.code,{children:`tools`}),`, only custom/client function tools are used; non-`,_jsx(_components.code,{children:`custom`}),` tool types are ignored.`]}),`\n`,_jsxs(Info,{children:[_jsxs(_components.p,{children:[`This API is currently in `,_jsx(_components.strong,{children:`Beta`}),`.\nWhile we strive to provide a stable and reliable experience, this feature is still under active development.\nAs a result, you may encounter unexpected behavior or limitations.\nWe encourage you to provide feedback to help us improve the feature before its official release.`]}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`mailto:support@friendli.ai`,children:`Feature request \u0026 feedback`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`mailto:support@friendli.ai`,children:`Contact support`})}),`\n`]})]})]})}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":"Container Messages","description":"Generate a model response from a conversation using the Anthropic Messages API format. Supports streaming, function tool calls, and extended thinking.","deprecated":null,"version":null,"sidebarTitle":"Messages","og:title":"Container Messages","og:description":"Generate a model response from a conversation using the Anthropic Messages API format. Supports streaming, function tool calls, and extended thinking.","tag":"Beta","openapi":"https://github.com/friendliai/friendli-openapi/raw/refs/heads/main/openapi.yaml post /v1/messages","href":"/openapi/container/messages","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/friendliai/13360a4393f88fc7/script.js"],"openApiReferenceData":{"operation":{"tags":["Container.Messages"],"summary":"Messages","description":"Generate a model response from a conversation using the Anthropic Messages API format. Supports streaming, function tool calls, and extended thinking.","operationId":"containerMessages","requestBody":"7a00f129-b56b-44c2-9d30-9dcfcc28212d","responses":{"200":"77531e16-1eb8-41dd-ae6e-a91ca215d866","422":"16e124e0-9dbb-4bdf-a2eb-9dc28191c2da"},"x-speakeasy-name-override":"messages","x-mint":{"metadata":{"title":"Container Messages","sidebarTitle":"Messages","og:title":"Container Messages","description":"Generate a model response from a conversation using the Anthropic Messages API format. Supports streaming, function tool calls, and extended thinking.","og:description":"Generate a model response from a conversation using the Anthropic Messages API format. Supports streaming, function tool calls, and extended thinking.","tag":"Beta"},"href":"/openapi/container/messages","content":"Generate a model response from a conversation using the Anthropic Messages API format. Supports streaming, function tool calls, and extended thinking.\n\n\u003cWarning>Server-side tools are not supported in the Messages API. In `tools`, only custom/client function tools are used; non-`custom` tool types are ignored.\u003c/Warning>\n\n\u003cInfo>\nThis API is currently in **Beta**.\nWhile we strive to provide a stable and reliable experience, this feature is still under active development.\nAs a result, you may encounter unexpected behavior or limitations.\nWe encourage you to provide feedback to help us improve the feature before its official release.\n\n- [Feature request \u0026 feedback](mailto:support@friendli.ai)\n- [Contact support](mailto:support@friendli.ai)\n\n\u003c/Info>"},"method":"post","type":"path","servers":["856f3f54-22b6-4777-9aa5-d96c85f18945"],"security":[],"path":"/v1/messages","baseUrlOptions":["http://localhost:8000"],"title":"Messages","codeSamples":[],"requestExampleLanguages":["bash","python","javascript","go"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.messages.items.0.role":"user","body.messages.items.0.content.oneOf.0":"Hello, summarize what you can do in one sentence.","body.model.oneOf.0":"zai-org/GLM-5.3"}]},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"properties":{"messages":{"items":{"properties":{"role":{"type":"string","enum":["user","assistant"],"title":"Role","description":"Author role for this message turn. Use `user` for user input and `assistant` for prior assistant turns.","isRequired":true,"uniqueKey":"messages.items.[INDEX].role","typeLabel":"enum\u003cstring>"},"content":{"oneOf":[{"type":"string","title":"Content","description":"Message payload. Supports plain string shorthand or a typed block array.","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.0","typeLabel":"string"},{"type":"array","items":{"oneOf":[{"type":"object","title":"Text","required":["type","text"],"properties":{"type":{"type":"string","const":"text","title":"Type","description":"Content block type. Must be `text`.","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.0.type","typeLabel":"string"},"text":{"type":"string","title":"Text","description":"Text content for this block.","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.0.text","typeLabel":"string"}},"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.0","typeLabel":"Text · object"},{"type":"object","title":"Image","required":["type","source"],"properties":{"type":{"type":"string","const":"image","title":"Type","description":"Content block type. Must be `image`.","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.1.type","typeLabel":"string"},"source":{"oneOf":[{"type":"object","title":"Base64","description":"Image source descriptor (`url` or `base64`).","required":["type","data","media_type"],"properties":{"type":{"type":"string","const":"base64","title":"Type","description":"Image source type. Must be `base64`.","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.1.source.oneOf.0.type","typeLabel":"string"},"data":{"type":"string","minLength":1,"title":"Data","description":"Base64-encoded image bytes (without data URL prefix).","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.1.source.oneOf.0.data","typeLabel":"string"},"media_type":{"type":"string","minLength":1,"title":"Media Type","description":"MIME type, for example `image/png`.","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.1.source.oneOf.0.media_type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.1.source.oneOf.0","typeLabel":"Base64 · object"},{"type":"object","title":"URL","description":"Image source descriptor (`url` or `base64`).","required":["type","url"],"properties":{"type":{"type":"string","const":"url","title":"Type","description":"Image source type. Must be `url`.","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.1.source.oneOf.1.type","typeLabel":"string"},"url":{"type":"string","minLength":1,"title":"Url","description":"Publicly accessible image URL that the service can fetch.","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.1.source.oneOf.1.url","typeLabel":"string"}},"isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.1.source.oneOf.1","typeLabel":"URL · object"}],"isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.1.source","typeLabel":"Base64 · object | URL · object"}},"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.1","typeLabel":"Image · object"},{"type":"object","title":"Thinking","required":["type","thinking"],"properties":{"type":{"type":"string","const":"thinking","title":"Type","description":"Content block type. Must be `thinking`.","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.2.type","typeLabel":"string"},"thinking":{"type":"string","title":"Thinking","description":"Reasoning content for this block.","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.2.thinking","typeLabel":"string"},"signature":{"oneOf":[{"type":"string","title":"Signature","description":"Optional signature associated with the reasoning content.","uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.2.signature.oneOf.0","typeLabel":"string"},{"type":"null","title":"Signature","description":"Optional signature associated with the reasoning content.","uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.2.signature.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.2.signature","typeLabel":"string | null"}},"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.2","typeLabel":"Thinking · object"},{"type":"object","title":"Tool Use","required":["type","name","input"],"properties":{"type":{"type":"string","const":"tool_use","title":"Type","description":"Content block type. Must be `tool_use`.","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.3.type","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"Name of the tool to invoke.","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.3.name","typeLabel":"string"},"input":{"additionalProperties":true,"type":"object","title":"Input","description":"Tool input argument object.","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.3.input","typeLabel":"Input · object"},"id":{"oneOf":[{"type":"string","title":"Id","description":"Optional tool call identifier. Use this value to link follow-up `tool_result` blocks.","uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.3.id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Id","description":"Optional tool call identifier. Use this value to link follow-up `tool_result` blocks.","uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.3.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.3.id","typeLabel":"string | null"}},"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.3","typeLabel":"Tool Use · object"},{"type":"object","title":"Tool Result","required":["type","tool_use_id"],"properties":{"type":{"type":"string","const":"tool_result","title":"Type","description":"Content block type. Must be `tool_result`.","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.4.type","typeLabel":"string"},"tool_use_id":{"type":"string","title":"Tool Use Id","description":"Identifier of the related `tool_use` block this result answers.","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.4.tool_use_id","typeLabel":"string"},"content":{"oneOf":[{"type":"string","title":"Content","description":"Tool result payload. Can be plain text, a list of objects, or null when no body is returned.","uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.4.content.oneOf.0","typeLabel":"string"},{"type":"array","items":{"additionalProperties":true,"type":"object","uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.4.content.oneOf.1.items.[INDEX]","typeLabel":"object"},"title":"Content","description":"Tool result payload. Can be plain text, a list of objects, or null when no body is returned.","uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.4.content.oneOf.1","typeLabel":"Content · object[]"},{"type":"null","title":"Content","description":"Tool result payload. Can be plain text, a list of objects, or null when no body is returned.","uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.4.content.oneOf.2","typeLabel":"null"}],"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.4.content","typeLabel":"string | Content · object[] | null"}},"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.4","typeLabel":"Tool Result · object"},{"type":"object","title":"Compatibility Block","required":["type"],"properties":{"type":{"type":"string","enum":["document","search_result","redacted_thinking","server_tool_use","web_search_tool_result","web_fetch_tool_result","code_execution_tool_result","bash_code_execution_tool_result","text_editor_code_execution_tool_result","tool_search_tool_result","container_upload"],"title":"Type","description":"Compatibility block type. These blocks are accepted for parsing compatibility and ignored for generation.","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.5.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX].oneOf.5","typeLabel":"Compatibility Block · object"}],"uniqueKey":"messages.items.[INDEX].content.oneOf.1.items.[INDEX]","typeLabel":"Text · object | Image · object | Thinking · object | Tool Use · object | Tool Result · object | Compatibility Block · object"},"title":"Content","description":"Message payload. Supports plain string shorthand or a typed block array.","isRequired":true,"uniqueKey":"messages.items.[INDEX].content.oneOf.1","typeLabel":"(Text · object | Image · object | Thinking · object | Tool Use · object | Tool Result · object | Compatibility Block · object)[]"}],"isRequired":true,"uniqueKey":"messages.items.[INDEX].content","typeLabel":"string | (Text · object | Image · object | Thinking · object | Tool Use · object | Tool Result · object | Compatibility Block · object)[]"}},"type":"object","required":["role","content"],"title":"MessagesInputMessage","uniqueKey":"messages.items.[INDEX]","typeLabel":"MessagesInputMessage · object"},"type":"array","minItems":1,"title":"Messages","description":"A list of conversation messages ordered from oldest to newest. Must contain at least one item.","examples":[[{"content":"Explain top_p in one sentence.","role":"user"}]],"isRequired":true,"uniqueKey":"messages","typeLabel":"MessagesInputMessage · object[]"},"max_tokens":{"oneOf":[{"type":"integer","title":"Max Tokens","description":"Maximum number of tokens to generate for the assistant response. Must be greater than 0 when provided.","minimum":1,"uniqueKey":"max_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Tokens","description":"Maximum number of tokens to generate for the assistant response. Must be greater than 0 when provided.","uniqueKey":"max_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"max_tokens","typeLabel":"integer | null"},"model":{"oneOf":[{"type":"string","title":"Model","description":"Routes the request to a specific adapter.","example":"(adapter-route)","uniqueKey":"model.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model","description":"Routes the request to a specific adapter.","example":"(adapter-route)","uniqueKey":"model.oneOf.1","typeLabel":"null"}],"uniqueKey":"model","typeLabel":"string | null"},"system":{"oneOf":[{"type":"string","title":"System","description":"Payload format for the top-level `system` instruction.","uniqueKey":"system.oneOf.0","typeLabel":"string"},{"type":"array","items":{"properties":{"type":{"type":"string","const":"text","title":"Type","description":"System block type. Must be `text`.","isRequired":true,"uniqueKey":"system.oneOf.1.items.[INDEX].type","typeLabel":"string"},"text":{"type":"string","title":"Text","description":"System instruction text content.","isRequired":true,"uniqueKey":"system.oneOf.1.items.[INDEX].text","typeLabel":"string"}},"type":"object","required":["type","text"],"title":"MessagesSystemTextBlock","uniqueKey":"system.oneOf.1.items.[INDEX]","typeLabel":"MessagesSystemTextBlock · object"},"title":"System","description":"Payload format for the top-level `system` instruction.","uniqueKey":"system.oneOf.1","typeLabel":"MessagesSystemTextBlock · object[]"},{"type":"null","title":"System","description":"Optional top-level system instruction applied before conversation turns. Supports a plain string or an array of text blocks.","uniqueKey":"system.oneOf.2","typeLabel":"null"}],"uniqueKey":"system","typeLabel":"string | MessagesSystemTextBlock · object[] | null"},"stream":{"type":"boolean","title":"Stream","description":"Whether to stream the response. When set to `true`, events are sent as [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#event_stream_format) once generated.","default":false,"uniqueKey":"stream","typeLabel":"boolean"},"temperature":{"oneOf":[{"type":"number","title":"Temperature","description":"Sampling temperature. Lower values make outputs more deterministic; higher values increase diversity.","uniqueKey":"temperature.oneOf.0","typeLabel":"number"},{"type":"null","title":"Temperature","description":"Sampling temperature. Lower values make outputs more deterministic; higher values increase diversity.","uniqueKey":"temperature.oneOf.1","typeLabel":"null"}],"uniqueKey":"temperature","typeLabel":"number | null"},"top_p":{"oneOf":[{"type":"number","title":"Top P","description":"Nucleus sampling parameter. The model samples from the smallest token set whose cumulative probability reaches `top_p`.","uniqueKey":"top_p.oneOf.0","typeLabel":"number"},{"type":"null","title":"Top P","description":"Nucleus sampling parameter. The model samples from the smallest token set whose cumulative probability reaches `top_p`.","uniqueKey":"top_p.oneOf.1","typeLabel":"null"}],"uniqueKey":"top_p","typeLabel":"number | null"},"top_k":{"oneOf":[{"type":"integer","title":"Top K","description":"Limits sampling to the `k` most likely tokens at each decoding step.","uniqueKey":"top_k.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Top K","description":"Limits sampling to the `k` most likely tokens at each decoding step.","uniqueKey":"top_k.oneOf.1","typeLabel":"null"}],"uniqueKey":"top_k","typeLabel":"integer | null"},"stop_sequences":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"stop_sequences.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Stop Sequences","description":"Stop strings that terminate generation when matched in output. The matched value is returned in `stop_sequence` when applicable.","uniqueKey":"stop_sequences.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Stop Sequences","description":"Stop strings that terminate generation when matched in output. The matched value is returned in `stop_sequence` when applicable.","uniqueKey":"stop_sequences.oneOf.1","typeLabel":"null"}],"uniqueKey":"stop_sequences","typeLabel":"string[] | null"},"tools":{"oneOf":[{"type":"array","items":{"properties":{"name":{"type":"string","title":"Name","description":"Tool identifier used in model tool-call outputs. Keep this name stable and unique within the request.","isRequired":true,"uniqueKey":"tools.oneOf.0.items.[INDEX].name","typeLabel":"string"},"type":{"oneOf":[{"type":"string","title":"Type","description":"Tool category. If missing, empty, or `custom`, it is converted to a function tool. Any non-empty value other than `custom` is treated as a server-side tool and skipped.","uniqueKey":"tools.oneOf.0.items.[INDEX].type.oneOf.0","typeLabel":"string"},{"type":"null","title":"Type","description":"Tool category. If missing, empty, or `custom`, it is converted to a function tool. Any non-empty value other than `custom` is treated as a server-side tool and skipped.","uniqueKey":"tools.oneOf.0.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"tools.oneOf.0.items.[INDEX].type","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","title":"Description","description":"Natural-language description of what the tool does and when to call it.","uniqueKey":"tools.oneOf.0.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"Natural-language description of what the tool does and when to call it.","uniqueKey":"tools.oneOf.0.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"tools.oneOf.0.items.[INDEX].description","typeLabel":"string | null"},"input_schema":{"oneOf":[{"type":"object","title":"Input Schema","description":"JSON Schema describing tool arguments. The model uses this schema to construct the tool input object.","additionalProperties":true,"uniqueKey":"tools.oneOf.0.items.[INDEX].input_schema.oneOf.0","typeLabel":"Input Schema · object"},{"type":"null","title":"Input Schema","description":"JSON Schema describing tool arguments. The model uses this schema to construct the tool input object.","uniqueKey":"tools.oneOf.0.items.[INDEX].input_schema.oneOf.1","typeLabel":"null"}],"uniqueKey":"tools.oneOf.0.items.[INDEX].input_schema","typeLabel":"Input Schema · object | null"},"strict":{"oneOf":[{"type":"boolean","title":"Strict","description":"If true, applies stricter schema adherence when generating tool arguments.","uniqueKey":"tools.oneOf.0.items.[INDEX].strict.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Strict","description":"If true, applies stricter schema adherence when generating tool arguments.","uniqueKey":"tools.oneOf.0.items.[INDEX].strict.oneOf.1","typeLabel":"null"}],"uniqueKey":"tools.oneOf.0.items.[INDEX].strict","typeLabel":"boolean | null"}},"type":"object","required":["name"],"title":"MessagesToolDefinition","uniqueKey":"tools.oneOf.0.items.[INDEX]","typeLabel":"MessagesToolDefinition · object"},"title":"Tools","description":"Tool definitions available to the model. Use this to allow tool calls with structured arguments.","uniqueKey":"tools.oneOf.0","typeLabel":"MessagesToolDefinition · object[]"},{"type":"null","title":"Tools","description":"Tool definitions available to the model. Use this to allow tool calls with structured arguments.","uniqueKey":"tools.oneOf.1","typeLabel":"null"}],"uniqueKey":"tools","typeLabel":"MessagesToolDefinition · object[] | null"},"tool_choice":{"oneOf":[{"type":"object","title":"MessagesToolChoice","description":"Controls tool-calling behavior (`auto`, `any`, `tool`, `none`) and optional parallel-call behavior.","required":["type"],"properties":{"type":{"type":"string","enum":["auto","any","tool","none"],"title":"Type","description":"Tool-calling mode. `auto` lets the model decide, `any` requires at least one tool call, `tool` forces a named tool, and `none` disables tool calls.","isRequired":true,"uniqueKey":"tool_choice.oneOf.0.type","typeLabel":"enum\u003cstring>"},"name":{"oneOf":[{"type":"string","title":"Name","description":"Tool name to force when `type=tool`. Ignored for other `type` values.","uniqueKey":"tool_choice.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"Tool name to force when `type=tool`. Ignored for other `type` values.","uniqueKey":"tool_choice.oneOf.0.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"tool_choice.oneOf.0.name","typeLabel":"string | null"},"disable_parallel_tool_use":{"oneOf":[{"type":"boolean","title":"Disable Parallel Tool Use","description":"If true, restricts the model to at most one tool call at a time. Must not be provided when `type=none`.","uniqueKey":"tool_choice.oneOf.0.disable_parallel_tool_use.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Disable Parallel Tool Use","description":"If true, restricts the model to at most one tool call at a time. Must not be provided when `type=none`.","uniqueKey":"tool_choice.oneOf.0.disable_parallel_tool_use.oneOf.1","typeLabel":"null"}],"uniqueKey":"tool_choice.oneOf.0.disable_parallel_tool_use","typeLabel":"boolean | null"}},"uniqueKey":"tool_choice.oneOf.0","typeLabel":"MessagesToolChoice · object"},{"type":"null","description":"Controls tool-calling behavior (`auto`, `any`, `tool`, `none`) and optional parallel-call behavior.","uniqueKey":"tool_choice.oneOf.1","typeLabel":"null"}],"uniqueKey":"tool_choice","typeLabel":"MessagesToolChoice · object | null"},"thinking":{"oneOf":[{"type":"object","title":"MessagesThinkingConfig","description":"Controls reasoning behavior with mode (`enabled`, `disabled`, `adaptive`). `enabled` requires `budget_tokens`; `disabled` and `adaptive` must not include it.","required":["type"],"properties":{"type":{"type":"string","enum":["enabled","disabled","adaptive"],"title":"Type","description":"Reasoning mode. `enabled` forces reasoning, `disabled` suppresses it, and `adaptive` lets the system decide.","isRequired":true,"uniqueKey":"thinking.oneOf.0.type","typeLabel":"enum\u003cstring>"},"budget_tokens":{"oneOf":[{"type":"integer","title":"Budget Tokens","description":"Reasoning token budget. Required when `type=enabled`; must not be provided when `type=disabled` or `type=adaptive`. If `max_tokens` is set, this must be smaller than `max_tokens`.","minimum":1,"uniqueKey":"thinking.oneOf.0.budget_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Budget Tokens","description":"Reasoning token budget. Required when `type=enabled`; must not be provided when `type=disabled` or `type=adaptive`. If `max_tokens` is set, this must be smaller than `max_tokens`.","uniqueKey":"thinking.oneOf.0.budget_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"thinking.oneOf.0.budget_tokens","typeLabel":"integer | null"}},"uniqueKey":"thinking.oneOf.0","typeLabel":"MessagesThinkingConfig · object"},{"type":"null","description":"Controls reasoning behavior with mode (`enabled`, `disabled`, `adaptive`). `enabled` requires `budget_tokens`; `disabled` and `adaptive` must not include it.","uniqueKey":"thinking.oneOf.1","typeLabel":"null"}],"uniqueKey":"thinking","typeLabel":"MessagesThinkingConfig · object | null"},"output_config":{"oneOf":[{"type":"object","title":"MessagesOutputConfig","description":"Output generation options including effort level and structured output format settings.","properties":{"effort":{"oneOf":[{"type":"string","title":"Effort","description":"Relative generation effort level. Higher effort can improve quality on harder prompts at the cost of additional compute.","enum":["minimal","low","medium","high","xhigh","max","ultracode"],"uniqueKey":"output_config.oneOf.0.effort.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Effort","description":"Relative generation effort level. Higher effort can improve quality on harder prompts at the cost of additional compute.","uniqueKey":"output_config.oneOf.0.effort.oneOf.1","typeLabel":"null"}],"uniqueKey":"output_config.oneOf.0.effort","typeLabel":"enum\u003cstring> | null"},"format":{"oneOf":[{"type":"object","title":"MessagesOutputFormat","description":"Structured output settings. Currently supports only `json_schema`.","properties":{"type":{"oneOf":[{"type":"string","title":"Type","description":"Output format type. Set to `json_schema` to constrain output to a JSON schema.","const":"json_schema","uniqueKey":"output_config.oneOf.0.format.oneOf.0.type.oneOf.0","typeLabel":"string"},{"type":"null","title":"Type","description":"Output format type. Set to `json_schema` to constrain output to a JSON schema.","uniqueKey":"output_config.oneOf.0.format.oneOf.0.type.oneOf.1","typeLabel":"null"}],"uniqueKey":"output_config.oneOf.0.format.oneOf.0.type","typeLabel":"string | null"},"schema":{"oneOf":[{"type":"object","title":"Schema","description":"JSON Schema object applied when `type` is `json_schema`.","additionalProperties":true,"uniqueKey":"output_config.oneOf.0.format.oneOf.0.schema.oneOf.0","typeLabel":"Schema · object"},{"type":"null","title":"Schema","description":"JSON Schema object applied when `type` is `json_schema`.","uniqueKey":"output_config.oneOf.0.format.oneOf.0.schema.oneOf.1","typeLabel":"null"}],"uniqueKey":"output_config.oneOf.0.format.oneOf.0.schema","typeLabel":"Schema · object | null"}},"uniqueKey":"output_config.oneOf.0.format.oneOf.0","typeLabel":"MessagesOutputFormat · object"},{"type":"null","description":"Structured output settings. Currently supports only `json_schema`.","uniqueKey":"output_config.oneOf.0.format.oneOf.1","typeLabel":"null"}],"uniqueKey":"output_config.oneOf.0.format","typeLabel":"MessagesOutputFormat · object | null"}},"uniqueKey":"output_config.oneOf.0","typeLabel":"MessagesOutputConfig · object"},{"type":"null","description":"Output generation options including effort level and structured output format settings.","uniqueKey":"output_config.oneOf.1","typeLabel":"null"}],"uniqueKey":"output_config","typeLabel":"MessagesOutputConfig · object | null"},"cache_control":{"oneOf":[{"type":"object","title":"Cache Control","description":"Compatibility field accepted for request portability. Parsed but not used for generation.","additionalProperties":true,"uniqueKey":"cache_control.oneOf.0","typeLabel":"Cache Control · object"},{"type":"null","title":"Cache Control","description":"Compatibility field accepted for request portability. Parsed but not used for generation.","uniqueKey":"cache_control.oneOf.1","typeLabel":"null"}],"uniqueKey":"cache_control","typeLabel":"Cache Control · object | null"},"container":{"oneOf":[{"type":"object","title":"Container","description":"Compatibility field accepted for request portability. Parsed but not used for generation.","additionalProperties":true,"uniqueKey":"container.oneOf.0","typeLabel":"Container · object"},{"type":"null","title":"Container","description":"Compatibility field accepted for request portability. Parsed but not used for generation.","uniqueKey":"container.oneOf.1","typeLabel":"null"}],"uniqueKey":"container","typeLabel":"Container · object | null"},"context_manager":{"oneOf":[{"type":"object","title":"Context Manager","description":"Compatibility field accepted for request portability. Parsed but not used for generation.","additionalProperties":true,"uniqueKey":"context_manager.oneOf.0","typeLabel":"Context Manager · object"},{"type":"null","title":"Context Manager","description":"Compatibility field accepted for request portability. Parsed but not used for generation.","uniqueKey":"context_manager.oneOf.1","typeLabel":"null"}],"uniqueKey":"context_manager","typeLabel":"Context Manager · object | null"},"inference_geo":{"oneOf":[{"type":"object","title":"Inference Geo","description":"Compatibility field accepted for request portability. Parsed but not used for generation.","additionalProperties":true,"uniqueKey":"inference_geo.oneOf.0","typeLabel":"Inference Geo · object"},{"type":"null","title":"Inference Geo","description":"Compatibility field accepted for request portability. Parsed but not used for generation.","uniqueKey":"inference_geo.oneOf.1","typeLabel":"null"}],"uniqueKey":"inference_geo","typeLabel":"Inference Geo · object | null"},"metadata":{"oneOf":[{"type":"object","title":"Metadata","description":"Compatibility field accepted for request portability. Parsed but not used for generation.","additionalProperties":true,"uniqueKey":"metadata.oneOf.0","typeLabel":"Metadata · object"},{"type":"null","title":"Metadata","description":"Compatibility field accepted for request portability. Parsed but not used for generation.","uniqueKey":"metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"metadata","typeLabel":"Metadata · object | null"},"service_tier":{"oneOf":[{"type":"string","title":"Service Tier","description":"Compatibility field accepted for request portability. Parsed but not used for generation.","uniqueKey":"service_tier.oneOf.0","typeLabel":"string"},{"type":"object","title":"Service Tier","description":"Compatibility field accepted for request portability. Parsed but not used for generation.","additionalProperties":true,"uniqueKey":"service_tier.oneOf.1","typeLabel":"Service Tier · object"},{"type":"null","title":"Service Tier","description":"Compatibility field accepted for request portability. Parsed but not used for generation.","uniqueKey":"service_tier.oneOf.2","typeLabel":"null"}],"uniqueKey":"service_tier","typeLabel":"string | Service Tier · object | null"}},"additionalProperties":true,"type":"object","required":["messages"],"title":"ContainerMessagesBody","example":{"messages":[{"content":"Hello, summarize what you can do in one sentence.","role":"user"}],"model":"zai-org/GLM-5.3"},"uniqueKey":"","typeLabel":"ContainerMessagesBody · object"},"examples":{"Example":{"title":"Example","value":{"messages":[{"content":"Hello, summarize what you can do in one sentence.","role":"user"}],"model":"zai-org/GLM-5.3"}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"77531e16-1eb8-41dd-ae6e-a91ca215d866":{"description":"Messages-style response, or an SSE stream when `stream` is true.","content":{"application/json":{"schema":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for this message response.","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"type":{"type":"string","const":"message","title":"Type","description":"Response object type (`message`).","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"role":{"type":"string","const":"assistant","title":"Role","description":"Role of the output message author (`assistant`).","isRequired":true,"uniqueKey":"role","typeLabel":"string"},"content":{"items":{"oneOf":[{"type":"object","title":"Thinking","required":["type","thinking","signature"],"properties":{"type":{"type":"string","const":"thinking","title":"Type","description":"Content block type.","isRequired":true,"uniqueKey":"content.items.[INDEX].oneOf.0.type","typeLabel":"string"},"thinking":{"type":"string","title":"Thinking","description":"Reasoning content returned by the model.","isRequired":true,"uniqueKey":"content.items.[INDEX].oneOf.0.thinking","typeLabel":"string"},"signature":{"type":"string","title":"Signature","description":"Signature associated with the reasoning content.","isRequired":true,"uniqueKey":"content.items.[INDEX].oneOf.0.signature","typeLabel":"string"}},"uniqueKey":"content.items.[INDEX].oneOf.0","typeLabel":"Thinking · object"},{"type":"object","title":"Text","required":["type","text"],"properties":{"type":{"type":"string","const":"text","title":"Type","description":"Content block type.","isRequired":true,"uniqueKey":"content.items.[INDEX].oneOf.1.type","typeLabel":"string"},"text":{"type":"string","title":"Text","description":"Assistant-generated text for this block.","isRequired":true,"uniqueKey":"content.items.[INDEX].oneOf.1.text","typeLabel":"string"}},"uniqueKey":"content.items.[INDEX].oneOf.1","typeLabel":"Text · object"},{"type":"object","title":"Tool Use","required":["type","id","name","input"],"properties":{"type":{"type":"string","const":"tool_use","title":"Type","description":"Content block type.","isRequired":true,"uniqueKey":"content.items.[INDEX].oneOf.2.type","typeLabel":"string"},"id":{"type":"string","title":"Id","description":"Identifier of the tool call emitted by the model.","isRequired":true,"uniqueKey":"content.items.[INDEX].oneOf.2.id","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"Name of the invoked tool.","isRequired":true,"uniqueKey":"content.items.[INDEX].oneOf.2.name","typeLabel":"string"},"input":{"additionalProperties":true,"type":"object","title":"Input","description":"Parsed tool argument object generated by the model.","isRequired":true,"uniqueKey":"content.items.[INDEX].oneOf.2.input","typeLabel":"Input · object"}},"uniqueKey":"content.items.[INDEX].oneOf.2","typeLabel":"Tool Use · object"}],"uniqueKey":"content.items.[INDEX]","typeLabel":"Thinking · object | Text · object | Tool Use · object"},"type":"array","title":"Content","description":"Assistant output blocks in generation order.","isRequired":true,"uniqueKey":"content","typeLabel":"(Thinking · object | Text · object | Tool Use · object)[]"},"usage":{"properties":{"input_tokens":{"type":"integer","minimum":0,"title":"Input Tokens","description":"Number of billed input tokens for this request.","isRequired":true,"uniqueKey":"usage.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"title":"Output Tokens","description":"Number of billed output tokens generated by the model.","isRequired":true,"uniqueKey":"usage.output_tokens","typeLabel":"integer"},"cache_read_input_tokens":{"oneOf":[{"type":"integer","title":"Cache Read Input Tokens","description":"Number of input tokens served from cache, when cache reads are applicable.","minimum":0,"uniqueKey":"usage.cache_read_input_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Cache Read Input Tokens","description":"Number of input tokens served from cache, when cache reads are applicable.","uniqueKey":"usage.cache_read_input_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"usage.cache_read_input_tokens","typeLabel":"integer | null"}},"type":"object","required":["input_tokens","output_tokens"],"title":"MessagesUsage","description":"Token usage details for this response.","isRequired":true,"uniqueKey":"usage","typeLabel":"MessagesUsage · object"},"stop_reason":{"oneOf":[{"type":"string","title":"Stop Reason","description":"Why generation stopped (`end_turn`, `max_tokens`, `tool_use`, `stop_sequence`).","enum":["end_turn","max_tokens","tool_use","stop_sequence"],"uniqueKey":"stop_reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Stop Reason","description":"Why generation stopped (`end_turn`, `max_tokens`, `tool_use`, `stop_sequence`).","uniqueKey":"stop_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"stop_reason","typeLabel":"enum\u003cstring> | null"},"stop_sequence":{"oneOf":[{"type":"string","title":"Stop Sequence","description":"Matched stop string when `stop_reason` is `stop_sequence`; otherwise null.","uniqueKey":"stop_sequence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Stop Sequence","description":"Matched stop string when `stop_reason` is `stop_sequence`; otherwise null.","uniqueKey":"stop_sequence.oneOf.1","typeLabel":"null"}],"uniqueKey":"stop_sequence","typeLabel":"string | null"},"model":{"oneOf":[{"type":"string","title":"Model","description":"Model used to generate the response.","uniqueKey":"model.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model","description":"Model used to generate the response.","uniqueKey":"model.oneOf.1","typeLabel":"null"}],"uniqueKey":"model","typeLabel":"string | null"}},"additionalProperties":true,"type":"object","required":["id","type","role","content","usage"],"title":"ContainerMessagesSuccess","uniqueKey":"","typeLabel":"ContainerMessagesSuccess · object"},"examples":{"Example":{"title":"Example","value":{"id":"msg_4b71d12c86d94e719c7e3984a7bb7941","type":"message","role":"assistant","content":[{"type":"text","text":"I can answer questions, generate text, and help with coding tasks."}],"stop_reason":"end_turn","usage":{"input_tokens":17,"output_tokens":14,"cache_read_input_tokens":0},"model":"zai-org/GLM-5.3"}}},"exampleType":"examples"},"text/event-stream":{"schema":{"oneOf":[{"type":"object","title":"Message Start","required":["event","data"],"properties":{"event":{"type":"string","const":"message_start","title":"Event","description":"The SSE `event` field.","isRequired":true,"uniqueKey":"oneOf.0.event","typeLabel":"string"},"data":{"properties":{"type":{"type":"string","const":"message_start","title":"Type","description":"The type of the event.","isRequired":true,"uniqueKey":"oneOf.0.data.type","typeLabel":"string"},"message":{"properties":{"id":{"type":"string","title":"Id","description":"Unique ID of the response message.","isRequired":true,"uniqueKey":"oneOf.0.data.message.id","typeLabel":"string"},"type":{"type":"string","const":"message","title":"Type","description":"Object type, always `message`.","isRequired":true,"uniqueKey":"oneOf.0.data.message.type","typeLabel":"string"},"role":{"type":"string","const":"assistant","title":"Role","description":"Author role of streamed output, always `assistant`.","isRequired":true,"uniqueKey":"oneOf.0.data.message.role","typeLabel":"string"},"usage":{"properties":{"input_tokens":{"type":"integer","minimum":0,"title":"Input Tokens","description":"Number of billed input tokens for this request.","isRequired":true,"uniqueKey":"oneOf.0.data.message.usage.input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"title":"Output Tokens","description":"Number of billed output tokens generated by the model.","isRequired":true,"uniqueKey":"oneOf.0.data.message.usage.output_tokens","typeLabel":"integer"},"cache_read_input_tokens":{"oneOf":[{"type":"integer","title":"Cache Read Input Tokens","description":"Number of input tokens served from cache, when cache reads are applicable.","minimum":0,"uniqueKey":"oneOf.0.data.message.usage.cache_read_input_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Cache Read Input Tokens","description":"Number of input tokens served from cache, when cache reads are applicable.","uniqueKey":"oneOf.0.data.message.usage.cache_read_input_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.data.message.usage.cache_read_input_tokens","typeLabel":"integer | null"}},"type":"object","required":["input_tokens","output_tokens"],"title":"MessagesUsage","description":"Running usage object.","isRequired":true,"uniqueKey":"oneOf.0.data.message.usage","typeLabel":"MessagesUsage · object"},"content":{"items":{"oneOf":[{"type":"object","title":"Thinking","required":["type","thinking","signature"],"properties":{"type":{"type":"string","const":"thinking","title":"Type","description":"Content block type.","isRequired":true,"uniqueKey":"oneOf.0.data.message.content.items.[INDEX].oneOf.0.type","typeLabel":"string"},"thinking":{"type":"string","title":"Thinking","description":"Reasoning content returned by the model.","isRequired":true,"uniqueKey":"oneOf.0.data.message.content.items.[INDEX].oneOf.0.thinking","typeLabel":"string"},"signature":{"type":"string","title":"Signature","description":"Signature associated with the reasoning content.","isRequired":true,"uniqueKey":"oneOf.0.data.message.content.items.[INDEX].oneOf.0.signature","typeLabel":"string"}},"uniqueKey":"oneOf.0.data.message.content.items.[INDEX].oneOf.0","typeLabel":"Thinking · object"},{"type":"object","title":"Text","required":["type","text"],"properties":{"type":{"type":"string","const":"text","title":"Type","description":"Content block type.","isRequired":true,"uniqueKey":"oneOf.0.data.message.content.items.[INDEX].oneOf.1.type","typeLabel":"string"},"text":{"type":"string","title":"Text","description":"Assistant-generated text for this block.","isRequired":true,"uniqueKey":"oneOf.0.data.message.content.items.[INDEX].oneOf.1.text","typeLabel":"string"}},"uniqueKey":"oneOf.0.data.message.content.items.[INDEX].oneOf.1","typeLabel":"Text · object"},{"type":"object","title":"Tool Use","required":["type","id","name","input"],"properties":{"type":{"type":"string","const":"tool_use","title":"Type","description":"Content block type.","isRequired":true,"uniqueKey":"oneOf.0.data.message.content.items.[INDEX].oneOf.2.type","typeLabel":"string"},"id":{"type":"string","title":"Id","description":"Identifier of the tool call emitted by the model.","isRequired":true,"uniqueKey":"oneOf.0.data.message.content.items.[INDEX].oneOf.2.id","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"Name of the invoked tool.","isRequired":true,"uniqueKey":"oneOf.0.data.message.content.items.[INDEX].oneOf.2.name","typeLabel":"string"},"input":{"additionalProperties":true,"type":"object","title":"Input","description":"Parsed tool argument object generated by the model.","isRequired":true,"uniqueKey":"oneOf.0.data.message.content.items.[INDEX].oneOf.2.input","typeLabel":"Input · object"}},"uniqueKey":"oneOf.0.data.message.content.items.[INDEX].oneOf.2","typeLabel":"Tool Use · object"}],"uniqueKey":"oneOf.0.data.message.content.items.[INDEX]","typeLabel":"Thinking · object | Text · object | Tool Use · object"},"type":"array","title":"Content","description":"Initialized as an empty array at start. Populated by subsequent block events.","uniqueKey":"oneOf.0.data.message.content","typeLabel":"(Thinking · object | Text · object | Tool Use · object)[]"},"stop_reason":{"oneOf":[{"type":"string","title":"Stop Reason","description":"Stop reason placeholder at start.","enum":["end_turn","max_tokens","tool_use","stop_sequence"],"uniqueKey":"oneOf.0.data.message.stop_reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Stop Reason","description":"Stop reason placeholder at start.","uniqueKey":"oneOf.0.data.message.stop_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.data.message.stop_reason","typeLabel":"enum\u003cstring> | null"},"stop_sequence":{"oneOf":[{"type":"string","title":"Stop Sequence","description":"Matched stop sequence placeholder at start.","uniqueKey":"oneOf.0.data.message.stop_sequence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Stop Sequence","description":"Matched stop sequence placeholder at start.","uniqueKey":"oneOf.0.data.message.stop_sequence.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.data.message.stop_sequence","typeLabel":"string | null"},"model":{"oneOf":[{"type":"string","title":"Model","description":"Model identifier for this response, when available.","uniqueKey":"oneOf.0.data.message.model.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model","description":"Model identifier for this response, when available.","uniqueKey":"oneOf.0.data.message.model.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.data.message.model","typeLabel":"string | null"}},"type":"object","required":["id","type","role","usage"],"title":"MessagesStreamMessageEnvelope","description":"Initial response envelope for this streamed message.","isRequired":true,"uniqueKey":"oneOf.0.data.message","typeLabel":"MessagesStreamMessageEnvelope · object"}},"type":"object","required":["type","message"],"title":"MessagesStreamMessageStart","description":"JSON object in the SSE `data` field.","isRequired":true,"uniqueKey":"oneOf.0.data","typeLabel":"MessagesStreamMessageStart · object"}},"uniqueKey":"oneOf.0","typeLabel":"Message Start · object"},{"type":"object","title":"Content Block Start","required":["event","data"],"properties":{"event":{"type":"string","const":"content_block_start","title":"Event","description":"The SSE `event` field.","isRequired":true,"uniqueKey":"oneOf.1.event","typeLabel":"string"},"data":{"properties":{"type":{"type":"string","const":"content_block_start","title":"Type","description":"The type of the event.","isRequired":true,"uniqueKey":"oneOf.1.data.type","typeLabel":"string"},"index":{"type":"integer","title":"Index","description":"Index of the content block in the response `content` array.","isRequired":true,"uniqueKey":"oneOf.1.data.index","typeLabel":"integer"},"content_block":{"oneOf":[{"type":"object","title":"Text","description":"Initial content block payload.","required":["type","text"],"properties":{"type":{"type":"string","const":"text","title":"Type","description":"Content block type.","isRequired":true,"uniqueKey":"oneOf.1.data.content_block.oneOf.0.type","typeLabel":"string"},"text":{"type":"string","title":"Text","description":"Text content when `type=text`.","isRequired":true,"uniqueKey":"oneOf.1.data.content_block.oneOf.0.text","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.1.data.content_block.oneOf.0","typeLabel":"Text · object"},{"type":"object","title":"Thinking","description":"Initial content block payload.","required":["type","thinking"],"properties":{"type":{"type":"string","const":"thinking","title":"Type","description":"Content block type.","isRequired":true,"uniqueKey":"oneOf.1.data.content_block.oneOf.1.type","typeLabel":"string"},"thinking":{"type":"string","title":"Thinking","description":"Reasoning content when `type=thinking`.","isRequired":true,"uniqueKey":"oneOf.1.data.content_block.oneOf.1.thinking","typeLabel":"string"},"signature":{"oneOf":[{"type":"string","title":"Signature","description":"Optional signature when `type=thinking`.","uniqueKey":"oneOf.1.data.content_block.oneOf.1.signature.oneOf.0","typeLabel":"string"},{"type":"null","title":"Signature","description":"Optional signature when `type=thinking`.","uniqueKey":"oneOf.1.data.content_block.oneOf.1.signature.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.data.content_block.oneOf.1.signature","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"oneOf.1.data.content_block.oneOf.1","typeLabel":"Thinking · object"},{"type":"object","title":"Tool Use","description":"Initial content block payload.","required":["type","id","name","input"],"properties":{"type":{"type":"string","const":"tool_use","title":"Type","description":"Content block type.","isRequired":true,"uniqueKey":"oneOf.1.data.content_block.oneOf.2.type","typeLabel":"string"},"id":{"type":"string","title":"Id","description":"Tool call ID when `type=tool_use`.","isRequired":true,"uniqueKey":"oneOf.1.data.content_block.oneOf.2.id","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"Tool name when `type=tool_use`.","isRequired":true,"uniqueKey":"oneOf.1.data.content_block.oneOf.2.name","typeLabel":"string"},"input":{"additionalProperties":true,"type":"object","title":"Input","description":"Parsed tool input object when `type=tool_use`.","isRequired":true,"uniqueKey":"oneOf.1.data.content_block.oneOf.2.input","typeLabel":"Input · object"}},"isRequired":true,"uniqueKey":"oneOf.1.data.content_block.oneOf.2","typeLabel":"Tool Use · object"}],"isRequired":true,"uniqueKey":"oneOf.1.data.content_block","typeLabel":"Text · object | Thinking · object | Tool Use · object"}},"type":"object","required":["type","index","content_block"],"title":"MessagesStreamContentBlockStart","description":"JSON object in the SSE `data` field.","isRequired":true,"uniqueKey":"oneOf.1.data","typeLabel":"MessagesStreamContentBlockStart · object"}},"uniqueKey":"oneOf.1","typeLabel":"Content Block Start · object"},{"type":"object","title":"Content Block Delta","required":["event","data"],"properties":{"event":{"type":"string","const":"content_block_delta","title":"Event","description":"The SSE `event` field.","isRequired":true,"uniqueKey":"oneOf.2.event","typeLabel":"string"},"data":{"properties":{"type":{"type":"string","const":"content_block_delta","title":"Type","description":"The type of the event.","isRequired":true,"uniqueKey":"oneOf.2.data.type","typeLabel":"string"},"index":{"type":"integer","title":"Index","description":"Index of the content block being updated.","isRequired":true,"uniqueKey":"oneOf.2.data.index","typeLabel":"integer"},"delta":{"oneOf":[{"type":"object","title":"Text Delta","description":"Incremental delta payload.","required":["type","text"],"properties":{"type":{"type":"string","const":"text_delta","title":"Type","description":"Delta type.","isRequired":true,"uniqueKey":"oneOf.2.data.delta.oneOf.0.type","typeLabel":"string"},"text":{"type":"string","title":"Text","description":"Text fragment when `type=text_delta`.","isRequired":true,"uniqueKey":"oneOf.2.data.delta.oneOf.0.text","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.2.data.delta.oneOf.0","typeLabel":"Text Delta · object"},{"type":"object","title":"Thinking Delta","description":"Incremental delta payload.","required":["type","thinking"],"properties":{"type":{"type":"string","const":"thinking_delta","title":"Type","description":"Delta type.","isRequired":true,"uniqueKey":"oneOf.2.data.delta.oneOf.1.type","typeLabel":"string"},"thinking":{"type":"string","title":"Thinking","description":"Reasoning fragment when `type=thinking_delta`.","isRequired":true,"uniqueKey":"oneOf.2.data.delta.oneOf.1.thinking","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.2.data.delta.oneOf.1","typeLabel":"Thinking Delta · object"},{"type":"object","title":"Signature Delta","description":"Incremental delta payload.","required":["type","signature"],"properties":{"type":{"type":"string","const":"signature_delta","title":"Type","description":"Delta type.","isRequired":true,"uniqueKey":"oneOf.2.data.delta.oneOf.2.type","typeLabel":"string"},"signature":{"type":"string","title":"Signature","description":"Signature fragment when `type=signature_delta`.","isRequired":true,"uniqueKey":"oneOf.2.data.delta.oneOf.2.signature","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.2.data.delta.oneOf.2","typeLabel":"Signature Delta · object"},{"type":"object","title":"Input JSON Delta","description":"Incremental delta payload.","required":["type","partial_json"],"properties":{"type":{"type":"string","const":"input_json_delta","title":"Type","description":"Delta type.","isRequired":true,"uniqueKey":"oneOf.2.data.delta.oneOf.3.type","typeLabel":"string"},"partial_json":{"type":"string","title":"Partial Json","description":"Partial JSON fragment for tool arguments when `type=input_json_delta`.","isRequired":true,"uniqueKey":"oneOf.2.data.delta.oneOf.3.partial_json","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.2.data.delta.oneOf.3","typeLabel":"Input JSON Delta · object"}],"isRequired":true,"uniqueKey":"oneOf.2.data.delta","typeLabel":"Text Delta · object | Thinking Delta · object | Signature Delta · object | Input JSON Delta · object"}},"type":"object","required":["type","index","delta"],"title":"MessagesStreamContentBlockDelta","description":"JSON object in the SSE `data` field.","isRequired":true,"uniqueKey":"oneOf.2.data","typeLabel":"MessagesStreamContentBlockDelta · object"}},"uniqueKey":"oneOf.2","typeLabel":"Content Block Delta · object"},{"type":"object","title":"Content Block Stop","required":["event","data"],"properties":{"event":{"type":"string","const":"content_block_stop","title":"Event","description":"The SSE `event` field.","isRequired":true,"uniqueKey":"oneOf.3.event","typeLabel":"string"},"data":{"properties":{"type":{"type":"string","const":"content_block_stop","title":"Type","description":"The type of the event.","isRequired":true,"uniqueKey":"oneOf.3.data.type","typeLabel":"string"},"index":{"type":"integer","title":"Index","description":"Index of the block that has finished streaming.","isRequired":true,"uniqueKey":"oneOf.3.data.index","typeLabel":"integer"}},"type":"object","required":["type","index"],"title":"MessagesStreamContentBlockStop","description":"JSON object in the SSE `data` field.","isRequired":true,"uniqueKey":"oneOf.3.data","typeLabel":"MessagesStreamContentBlockStop · object"}},"uniqueKey":"oneOf.3","typeLabel":"Content Block Stop · object"},{"type":"object","title":"Message Delta","required":["event","data"],"properties":{"event":{"type":"string","const":"message_delta","title":"Event","description":"The SSE `event` field.","isRequired":true,"uniqueKey":"oneOf.4.event","typeLabel":"string"},"data":{"properties":{"type":{"type":"string","const":"message_delta","title":"Type","description":"The type of the event.","isRequired":true,"uniqueKey":"oneOf.4.data.type","typeLabel":"string"},"delta":{"properties":{"stop_reason":{"oneOf":[{"type":"string","title":"Stop Reason","description":"Why generation stopped.","enum":["end_turn","max_tokens","tool_use","stop_sequence"],"uniqueKey":"oneOf.4.data.delta.stop_reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Stop Reason","description":"Why generation stopped.","uniqueKey":"oneOf.4.data.delta.stop_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.4.data.delta.stop_reason","typeLabel":"enum\u003cstring> | null"},"stop_sequence":{"oneOf":[{"type":"string","title":"Stop Sequence","description":"Matched stop sequence when `stop_reason=stop_sequence`.","uniqueKey":"oneOf.4.data.delta.stop_sequence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Stop Sequence","description":"Matched stop sequence when `stop_reason=stop_sequence`.","uniqueKey":"oneOf.4.data.delta.stop_sequence.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.4.data.delta.stop_sequence","typeLabel":"string | null"}},"type":"object","title":"MessagesStreamMessageDeltaPayload","description":"Final message-level delta.","isRequired":true,"uniqueKey":"oneOf.4.data.delta","typeLabel":"MessagesStreamMessageDeltaPayload · object"},"usage":{"oneOf":[{"type":"object","title":"MessagesStreamMessageDeltaUsage","description":"Usage delta object that may be emitted near stream completion.","properties":{"input_tokens":{"oneOf":[{"type":"integer","title":"Input Tokens","description":"Input token count delta when included.","minimum":0,"uniqueKey":"oneOf.4.data.usage.oneOf.0.input_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Input Tokens","description":"Input token count delta when included.","uniqueKey":"oneOf.4.data.usage.oneOf.0.input_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.4.data.usage.oneOf.0.input_tokens","typeLabel":"integer | null"},"output_tokens":{"oneOf":[{"type":"integer","title":"Output Tokens","description":"Output token count delta when included.","minimum":0,"uniqueKey":"oneOf.4.data.usage.oneOf.0.output_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Output Tokens","description":"Output token count delta when included.","uniqueKey":"oneOf.4.data.usage.oneOf.0.output_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.4.data.usage.oneOf.0.output_tokens","typeLabel":"integer | null"},"cache_read_input_tokens":{"oneOf":[{"type":"integer","title":"Cache Read Input Tokens","description":"Cached input token count delta when included.","minimum":0,"uniqueKey":"oneOf.4.data.usage.oneOf.0.cache_read_input_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Cache Read Input Tokens","description":"Cached input token count delta when included.","uniqueKey":"oneOf.4.data.usage.oneOf.0.cache_read_input_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.4.data.usage.oneOf.0.cache_read_input_tokens","typeLabel":"integer | null"}},"uniqueKey":"oneOf.4.data.usage.oneOf.0","typeLabel":"MessagesStreamMessageDeltaUsage · object"},{"type":"null","description":"Usage delta object that may be emitted near stream completion.","uniqueKey":"oneOf.4.data.usage.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.4.data.usage","typeLabel":"MessagesStreamMessageDeltaUsage · object | null"}},"type":"object","required":["type","delta"],"title":"MessagesStreamMessageDelta","description":"JSON object in the SSE `data` field.","isRequired":true,"uniqueKey":"oneOf.4.data","typeLabel":"MessagesStreamMessageDelta · object"}},"uniqueKey":"oneOf.4","typeLabel":"Message Delta · object"},{"type":"object","title":"Message Stop","required":["event","data"],"properties":{"event":{"type":"string","const":"message_stop","title":"Event","description":"The SSE `event` field.","isRequired":true,"uniqueKey":"oneOf.5.event","typeLabel":"string"},"data":{"properties":{"type":{"type":"string","const":"message_stop","title":"Type","description":"The type of the event.","isRequired":true,"uniqueKey":"oneOf.5.data.type","typeLabel":"string"}},"type":"object","required":["type"],"title":"MessagesStreamMessageStop","description":"JSON object in the SSE `data` field.","isRequired":true,"uniqueKey":"oneOf.5.data","typeLabel":"MessagesStreamMessageStop · object"}},"uniqueKey":"oneOf.5","typeLabel":"Message Stop · object"},{"type":"object","title":"Error","required":["event","data"],"properties":{"event":{"type":"string","const":"error","title":"Event","description":"The SSE `event` field.","isRequired":true,"uniqueKey":"oneOf.6.event","typeLabel":"string"},"data":{"properties":{"type":{"type":"string","const":"error","title":"Type","description":"The type of the event.","isRequired":true,"uniqueKey":"oneOf.6.data.type","typeLabel":"string"},"error":{"properties":{"type":{"type":"string","title":"Type","description":"Error category, such as `invalid_request_error`.","isRequired":true,"uniqueKey":"oneOf.6.data.error.type","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"Human-readable error message.","isRequired":true,"uniqueKey":"oneOf.6.data.error.message","typeLabel":"string"}},"type":"object","required":["type","message"],"title":"MessagesStreamErrorDetail","description":"Error payload object.","isRequired":true,"uniqueKey":"oneOf.6.data.error","typeLabel":"MessagesStreamErrorDetail · object"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Request identifier for debugging and support.","uniqueKey":"oneOf.6.data.request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Request identifier for debugging and support.","uniqueKey":"oneOf.6.data.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.6.data.request_id","typeLabel":"string | null"}},"type":"object","required":["type","error"],"title":"MessagesStreamErrorEvent","description":"JSON object in the SSE `data` field.","isRequired":true,"uniqueKey":"oneOf.6.data","typeLabel":"MessagesStreamErrorEvent · object"}},"uniqueKey":"oneOf.6","typeLabel":"Error · object"}],"uniqueKey":"","typeLabel":"Message Start · object | Content Block Start · object | Content Block Delta · object | Content Block Stop · object | Message Delta · object | Message Stop · object | Error · object"},"examples":{"Example":{"title":"Example","value":"event: message_start\ndata: {\"type\":\"message_start\",\"message\":{\"id\":\"msg_4b71d12c86d94e719c7e3984a7bb7941\",\"type\":\"message\",\"role\":\"assistant\",\"content\":[],\"stop_reason\":null,\"stop_sequence\":null,\"usage\":{\"input_tokens\":0,\"output_tokens\":0,\"cache_read_input_tokens\":0}}}\n\nevent: content_block_start\ndata: {\"type\":\"content_block_start\",\"index\":0,\"content_block\":{\"type\":\"text\",\"text\":\"\"}}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"Hello\"}}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\", how can I help?\"}}\n\nevent: content_block_stop\ndata: {\"type\":\"content_block_stop\",\"index\":0}\n\nevent: message_delta\ndata: {\"type\":\"message_delta\",\"delta\":{\"stop_reason\":\"end_turn\",\"stop_sequence\":null},\"usage\":{\"output_tokens\":11}}\n\nevent: message_stop\ndata: {\"type\":\"message_stop\"}\n"}},"exampleType":"examples"}},"exampleType":"examples"},"16e124e0-9dbb-4bdf-a2eb-9dc28191c2da":{"description":"Unprocessable Entity","content":{"application/json":{"examples":{"Invalid request error":{"title":"Invalid request error","value":{"type":"error","error":{"type":"invalid_request_error","message":"..."},"request_id":"req_..."}}},"schema":{"properties":{"type":{"type":"string","const":"error","title":"Type","description":"Top-level response type for Messages API errors.","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"error":{"properties":{"type":{"type":"string","title":"Type","description":"Error category. For HTTP 422 in Messages API, this is `invalid_request_error`.","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"Human-readable error message.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"type":"object","required":["type","message"],"title":"MessagesErrorObject","description":"Structured error object.","isRequired":true,"uniqueKey":"error","typeLabel":"MessagesErrorObject · object"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"Request identifier for debugging and support. It may be omitted in some failure paths.","uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"Request identifier for debugging and support. It may be omitted in some failure paths.","uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"request_id","typeLabel":"string | null"}},"type":"object","required":["type","error"],"title":"MessagesErrorResponse","uniqueKey":"","typeLabel":"MessagesErrorResponse · object"},"exampleType":"examples"}},"exampleType":"examples"}},"security":{},"servers":{"856f3f54-22b6-4777-9aa5-d96c85f18945":{"url":"http://localhost:8000"}}},"originalFileLocation":"https://github.com/friendliai/friendli-openapi/raw/refs/heads/main/openapi.yaml"},"subdomain":"friendliai","siteName":"FriendliAI Docs","title":"Container Messages","contextualStarterQuestions":[{"_id":"69fd749468c9a4a0bb4ed15f","deploymentId":"66d1620afd71f66abaace95b","questionText":"Are server-side tools supported?","status":"active","generatedBy":"contextual","path":"openapi/container/messages","createdAt":"2026-05-08T05:28:52.273Z","updatedAt":"2026-05-08T05:28:52.273Z","__v":0},{"_id":"69fd749468c9a4a0bb4ed15d","deploymentId":"66d1620afd71f66abaace95b","questionText":"How do I use streaming mode?","status":"active","generatedBy":"contextual","path":"openapi/container/messages","createdAt":"2026-05-08T05:28:52.273Z","updatedAt":"2026-05-08T05:28:52.273Z","__v":0},{"_id":"69fd749468c9a4a0bb4ed15e","deploymentId":"66d1620afd71f66abaace95b","questionText":"What message format should I use?","status":"active","generatedBy":"contextual","path":"openapi/container/messages","createdAt":"2026-05-08T05:28:52.273Z","updatedAt":"2026-05-08T05:28:52.273Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-26T03:11:20.491Z","gitLastModified":"2026-06-09T01:14:16.000Z","originalFileLocation":"openapi/container/messages.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Generate a model response from a conversation using the Anthropic Messages API format. Supports streaming, function tool calls, and extended thinking.\">\u003cmeta data-mint-head name=\"application-name\" content=\"FriendliAI 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/friendliai/f_6Xi29vsyX4mJlf/_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/friendliai/f_6Xi29vsyX4mJlf/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/friendliai/f_6Xi29vsyX4mJlf/_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/friendliai/f_6Xi29vsyX4mJlf/_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/friendliai/f_6Xi29vsyX4mJlf/_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/friendliai/f_6Xi29vsyX4mJlf/_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/friendliai/f_6Xi29vsyX4mJlf/_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/friendliai/f_6Xi29vsyX4mJlf/_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/friendliai/f_6Xi29vsyX4mJlf/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Container Messages\">\u003cmeta data-mint-head property=\"og:description\" content=\"Generate a model response from a conversation using the Anthropic Messages API format. Supports streaming, function tool calls, and extended thinking.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"FriendliAI Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://friendli.ai/docs/openapi/container/messages\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://friendliai.mintlify.site/docs/_mintlify/api/og/v2?division=Inference\u0026amp;title=Container+Messages\u0026amp;description=Generate+a+model+response+from+a+conversation+using+the+Anthropic+Messages+API+format.+Supports+streaming%2C+function+tool+calls%2C+and+extended+thinking.\u0026amp;theme=8d0579d800ace9672a43ac47\u0026amp;signature=f5330a0affa5a3047f9b8bdc453c0d47b70cff9a7d9d009478d0c1befe91b23b\">\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=\"Container Messages\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Generate a model response from a conversation using the Anthropic Messages API format. Supports streaming, function tool calls, and extended thinking.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://friendliai.mintlify.site/docs/_mintlify/api/og/v2?division=Inference\u0026amp;title=Container+Messages\u0026amp;description=Generate+a+model+response+from+a+conversation+using+the+Anthropic+Messages+API+format.+Supports+streaming%2C+function+tool+calls%2C+and+extended+thinking.\u0026amp;theme=8d0579d800ace9672a43ac47\u0026amp;signature=f5330a0affa5a3047f9b8bdc453c0d47b70cff9a7d9d009478d0c1befe91b23b\">\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/friendliai/f_6Xi29vsyX4mJlf/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"FriendliAI Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2A62DB\">\u003clink data-mint-head rel=\"canonical\" href=\"https://friendli.ai/docs/openapi/container/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/openapi/container/messages.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://friendli.ai/#organization\",\"name\":\"FriendliAI Docs\",\"url\":\"https://friendli.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/friendliai/Xn-EfFlXFvptInk9/static/svgs/logo.svg?fit=max\u0026auto=format\u0026n=Xn-EfFlXFvptInk9\u0026q=85\u0026s=0a04a5dd2152a1258e6d3ce995b70eb0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://friendli.ai/docs#website\",\"name\":\"FriendliAI Docs\",\"url\":\"https://friendli.ai/docs\",\"publisher\":{\"@id\":\"https://friendli.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://friendli.ai/docs/openapi/container/messages#webpage\",\"url\":\"https://friendli.ai/docs/openapi/container/messages\",\"name\":\"Container Messages\",\"description\":\"Generate a model response from a conversation using the Anthropic Messages API format. Supports streaming, function tool calls, and extended thinking.\",\"dateModified\":\"2026-06-09T01:14:16.000Z\",\"isPartOf\":{\"@id\":\"https://friendli.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://friendli.ai/docs/openapi/container/messages#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://friendli.ai/docs/openapi/container/messages#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Friendli Container\",\"item\":\"https://friendli.ai/docs/archive/container/guides/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API Reference\",\"item\":\"https://friendli.ai/docs/openapi/container/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Inference\",\"item\":\"https://friendli.ai/docs/openapi/container/chat-completions\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Container Messages\",\"item\":\"https://friendli.ai/docs/openapi/container/messages\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://friendli.ai/docs/openapi/container/messages#apireference\",\"headline\":\"Container Messages\",\"name\":\"Container Messages\",\"description\":\"Generate a model response from a conversation using the Anthropic Messages API format. Supports streaming, function tool calls, and extended thinking.\",\"url\":\"https://friendli.ai/docs/openapi/container/messages\",\"mainEntityOfPage\":{\"@id\":\"https://friendli.ai/docs/openapi/container/messages#webpage\"},\"dateModified\":\"2026-06-09T01:14:16.000Z\",\"publisher\":{\"@id\":\"https://friendli.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://friendli.ai/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"FriendliAI Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"FriendliAI Docs","nav":{"global":{"anchors":[{"anchor":"Home","icon":"home","href":"https://friendli.ai"},{"anchor":"Models","icon":"brain","href":"https://friendli.ai/models"},{"anchor":"Pricing","icon":"tag","href":"https://friendli.ai/pricing"},{"anchor":"Blog","icon":"newspaper","href":"https://friendli.ai/blog"}]},"tabs":[{"tab":"Home","hidden":true,"searchable":true,"pages":[{"title":"Home","href":""}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/introduction/overview"}]},{"tab":"Examples","pages":[{"title":"Examples","href":"/examples/models/overview"}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/openapi/introduction"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]},{"tab":"Archive","hidden":true,"searchable":true,"groups":[{"group":"Friendli Container","pages":[{"group":"Guides","icon":"book-open","expanded":true,"pages":[{"title":"Introducing Friendli Container","sidebarTitle":"Introduction","description":"Deploy generative AI models on your own infrastructure with Friendli Container. Full control over GPU resources, networking, and scaling.","href":"/archive/container/guides/introduction"},{"title":"QuickStart: Friendli Container Trial","sidebarTitle":"QuickStart","description":"Get started with Friendli Container trial. Access the registry, configure your secret, launch the container, and monitor with Grafana.","href":"/archive/container/guides/quickstart"},{"title":"Configuration","sidebarTitle":"Configuration","description":"Configuration reference for Friendli Container: how to pass launch options, serve across multiple GPUs, enable quantization, and run MoE models.","href":"/archive/container/guides/configuration"},{"title":"CUDA Compatibility","sidebarTitle":"CUDA Compatibility","description":"The Friendli Engine supports CUDA-enabled NVIDIA GPUs, which means it relies on a specific version of CUDA and necessitates proper CUDA compute compatibilities.","href":"/archive/container/guides/cuda-compatibility"},{"title":"Serving Multi-LoRA Models","sidebarTitle":"Multi-LoRA Serving","description":"Serve multiple LoRA-adapted LLMs simultaneously with Friendli Container without additional GPU resources. No retraining needed for task-specific models.","href":"/archive/container/guides/serving-multi-lora-models"},{"title":"Serving MoE Models","sidebarTitle":"MoE Models Serving","description":"Serve Mixture of Experts (MoE) models like Mixtral 8x7B with Friendli Container. Covers policy search setup and multi-GPU Docker configuration.","href":"/archive/container/guides/serving-moe-models"},{"title":"Quantization","sidebarTitle":"Quantization","description":"Learn how to serve pre-quantized models or perform online quantization with Friendli Container to reduce memory and speed up inference.","href":"/archive/container/guides/quantization"},{"title":"Optimize with Policy Search","sidebarTitle":"Optimize with Policy Search","description":"Boost inference throughput by up to 2x for MoE and quantized models by running execution policy search in Friendli Container for production.","href":"/archive/container/guides/optimizing-inference-with-policy-search"},{"title":"Running Friendli Container on SageMaker","sidebarTitle":"SageMaker Integration","description":"Create a real-time inference endpoint in Amazon SageMaker with Friendli Container. Use Friendli Engine for faster, cost-efficient serving.","href":"/archive/container/guides/sagemaker-integration"},{"title":"Deploy Friendli Container as Amazon EKS Add-On","sidebarTitle":"AWS EKS Add-On","description":"Deploy Friendli Container on Amazon EKS using the official AWS EKS Add-On. Set up GPU nodes, install the add-on, and run model inference.","href":"/archive/container/guides/eks-quickstart"},{"title":"Inference with gRPC","sidebarTitle":"Inference with gRPC","description":"Run a gRPC inference server with Friendli Container and send requests using the Friendli Python SDK. Includes setup, configuration, and code examples.","href":"/archive/container/guides/inference-with-grpc"},{"title":"Observability for Friendli Container","sidebarTitle":"Monitoring","description":"Observability is an integral part of DevOps. To support this, Friendli Container exports internal metrics in a Prometheus text format.","href":"/archive/container/guides/monitoring"}]},{"group":"API Reference","icon":"code","expanded":true,"pages":[{"title":"Container Overview","sidebarTitle":"Overview","description":"API reference for Friendli Container. Browse self-hosted inference endpoints for chat, responses, completions, messages, tokenization, images, and audio transcription.","href":"/openapi/container/overview"},{"group":"Inference","pages":[{"title":"Container Chat Completions","description":"Generate a model response from a list of messages comprising a conversation. Compatible with the OpenAI Chat Completions API, with support for streaming, tool calls, and structured outputs.","deprecated":null,"version":null,"sidebarTitle":"Chat Completions","openapi":"https://github.com/friendliai/friendli-openapi/raw/refs/heads/main/openapi.yaml post /v1/chat/completions","href":"/openapi/container/chat-completions"},{"title":"Container Responses","description":"Generate a model response from text or image inputs. Follows the OpenAI Responses API format, with support for streaming, function and custom tool calls, structured outputs, and reasoning controls.","deprecated":null,"version":null,"sidebarTitle":"Responses","tag":"Beta","openapi":"https://github.com/friendliai/friendli-openapi/raw/refs/heads/main/openapi.yaml post /v1/responses","href":"/openapi/container/responses"},{"title":"Container Messages","deprecated":null,"version":null,"sidebarTitle":"Messages","tag":"Beta","openapi":"https://github.com/friendliai/friendli-openapi/raw/refs/heads/main/openapi.yaml post /v1/messages","href":"/openapi/container/messages"},{"title":"Container Completions","description":"Generate a text completion from a prompt or token sequence. Supports streaming and configurable generation parameters.","deprecated":null,"version":null,"sidebarTitle":"Completions","openapi":"https://github.com/friendliai/friendli-openapi/raw/refs/heads/main/openapi.yaml post /v1/completions","href":"/openapi/container/completions"},{"title":"Container Text Classification","description":"Classify text input into categories with per-class probabilities.","deprecated":null,"version":null,"sidebarTitle":"Text Classification","openapi":"https://github.com/friendliai/friendli-openapi/raw/refs/heads/main/openapi.yaml post /classify","href":"/openapi/container/text-classification"},{"title":"Container Tokenization","description":"Convert text input into token IDs.","deprecated":null,"version":null,"sidebarTitle":"Tokenization","openapi":"https://github.com/friendliai/friendli-openapi/raw/refs/heads/main/openapi.yaml post /v1/tokenize","href":"/openapi/container/tokenization"},{"title":"Container Detokenization","description":"Convert a list of token IDs back into text.","deprecated":null,"version":null,"sidebarTitle":"Detokenization","openapi":"https://github.com/friendliai/friendli-openapi/raw/refs/heads/main/openapi.yaml post /v1/detokenize","href":"/openapi/container/detokenization"},{"title":"Container Image Generations","description":"Generate an image from a text prompt.","deprecated":null,"version":null,"sidebarTitle":"Image Generations","openapi":"https://github.com/friendliai/friendli-openapi/raw/refs/heads/main/openapi.yaml post /v1/images/generations","href":"/openapi/container/image-generations"},{"title":"Container Image Edits","description":"Edit an image based on a text prompt.","deprecated":null,"version":null,"sidebarTitle":"Image Edits","openapi":"https://github.com/friendliai/friendli-openapi/raw/refs/heads/main/openapi.yaml post /v1/images/edits","href":"/openapi/container/image-edits"},{"title":"Container Audio Transcriptions","description":"Transcribe an audio file into text.","deprecated":null,"version":null,"sidebarTitle":"Audio Transcriptions","openapi":"https://github.com/friendliai/friendli-openapi/raw/refs/heads/main/openapi.yaml post /v1/audio/transcriptions","href":"/openapi/container/audio-transcriptions"}]}]}]},{"group":"Friendli Python SDK","pages":[{"title":"Friendli Python SDK","sidebarTitle":"How-To","icon":"file-lines","description":"Install and use the Friendli Python SDK to access Model APIs, Dedicated Endpoints, and Container. Covers chat, completions, streaming, and async usage.","href":"/archive/python-sdk/how-to"}]}]}]},"basePath":"","title":"Container Messages","buildId":"dpl_BSPUBxEoKhhK7HzXVDPxdPvWx4xc","deploymentId":"dpl_BSPUBxEoKhhK7HzXVDPxdPvWx4xc","dynamics":["10e4515597","c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["BannerMarkdown--rjwFo9x.js","dist-qmLwQyWY.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-apD-Q0Oo.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-Do6EtGSl.js","utils-id4tQ6My.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-Byrixac4.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-nakYa3Zl.js","snippetPresets-Bq-pUS7h.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-CujTC_9K.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-FneVUsVu.js","shallow-DY9WpUCz.js","getApiPlaygroundDisplay-Bz8WpPfA.js","CodeSnippet-DgCuJg4G.js","CodeSnippets-Dub9c4T0.js","Page-CePXnjd1.js","getPastedJson-xdI8y2XB.js","icon--yVw5vkr.js","MethodPill-C47t7MdS.js","DuplicateIcon-BzwJ2LeC.js","createIcon-BzggGy84.js","DynamicMarkdown-AlxJK8VR.js","SectionHeading-CMlwFxdK.js","axios-vUo_bRtp.js","Markdown-BNgNrPsi.js","AssistantPageLink-Dc4qTkWx.js"]}