Inference (Preview)
POST/api/v2/inference/chat/completions
> 🧪 Preview — This endpoint is in preview and its contract may change.
Creates a model completion for the given chat conversation using an OpenAI-compatible Chat Completions API. Models are exposed as OpenAI-compatible endpoints, so you can call them with the OpenAI SDKs by pointing the base URL at this route and passing your Serenity API key as a Bearer token.
Select the model with the standard model property. A bare model code (e.g. qwen/qwen3.6) resolves against the Serenity Cloud catalogue; prefix it with a vendor as vendor:model (e.g. OpenAI:gpt-5.4-mini) to reach any other configured vendor.
You can pass OpenAI-style client (function) tools in the tools array. When the model decides to call one, the response has finish_reason: "tool_calls" and a matching tool_calls entry; run the tool on your side and send the result back on a follow-up request as a role: "tool" message referencing the tool_call_id.
Structured output is supported through response_format: text returns plain text, json_object returns free-form JSON, and json_schema constrains the reply to a JSON schema you supply. The requested format is validated against the selected model's capabilities, so a model that cannot honour it is rejected rather than silently ignoring it.
When stream is true, the response is delivered as Server-Sent Events (SSE).
Request​
Query Parameters
Use this param to override the culture of the response. Options: - en (default) - es
- application/json
Body
required
Array [
- DeveloperMessage
- SystemMessage
- UserMessage
- AssistantMessage
- ToolMessage
- FunctionMessage
]
- TextResponseFormat
- JsonObjectResponseFormat
- JsonSchemaResponseFormat
Array [
]
Array [
- FunctionTool
- CustomTool
]
messages
object[]
nullable
required
oneOf
content
object
required
content
object
required
content
object
required
content
object
required
content
object
required
content
object
required
logit_bias
object
nullable
metadata
object
nullable
response_format
object
The format the model must reply in. Exactly one of the three shapes.
oneOf
Plain text output. The default when response_format is omitted.
Possible values: [text]
Free-form JSON output. The prompt must still instruct the model to produce JSON.
Possible values: [json_object]
JSON output constrained to the supplied schema.
Possible values: [json_schema]
json_schema
object
required
stop
object
tool_choice
object
allowedTools
object
allowed_tools
object
required
tools
object[]
nullable
required
function
object
functionTool
object
function
object
required
customTool
object
custom
object
required
tools
object[]
nullable
oneOf
function
object
required
custom
object
required
format
object
Responses​
- 200
- 400
- 401
- 403
- 500
OK
There was a validation error. Please check your request data.
- application/json
- Schema
- Example (from schema)
Schema
errors
object
nullable
{
"message": "string",
"errors": {}
}
The user is unauthorized or the session expired
The user does not have permission
There was an unexpected error