Skip to main content
POST

Request body

string
required
Model ID to run. One of the IDs from List models, for example holo4-27b.
object[]
required
The conversation so far, as standard OpenAI message objects. Images accept HTTPS URLs or base64 data URIs (JPEG, PNG, WebP), up to 5 per request.
string
string | object[]
A string or an array of text and image_url parts.
object
Holo-specific. Constrain the response, at the decoding level, to a JSON object matching a schema: pass {"json": <JSON Schema>}. The object is returned in message.content. Use this for the structured-output agent loop and element localization.With the OpenAI SDKs, pass Holo-specific fields through extra_body (Python) or an untyped spread (TypeScript). On the wire they are top-level fields, and the API silently ignores a literal "extra_body" key.
object
The standard OpenAI field for the same constraint: {"type": "json_schema", "json_schema": {"name": "...", "schema": <JSON Schema>}}. Typed in the OpenAI SDKs, so no extra_body is needed.
object
Holo-specific. {"enable_thinking": false} turns thinking off on every model, like reasoning_effort: "none". Keep thinking on for agent loops, and turn it off for single-shot calls like grounding and OCR.
string
How much the model plans before acting. "none" turns thinking off on every model. "disabled" is the Agents API spelling and returns 400 here.
object[]
OpenAI-style function declarations for native function calling. Supported by every model except holo3-122b-a10b. A model supports it when tools is in its supported_features in GET /v1/models. Set tool_choice: "required" so the model acts on every step, and do not mix with structured_outputs.
string
Standard OpenAI semantics. Use "required" in function-calling agent loops.
boolean
default:"false"
Stream the response as server-sent chunk events. Reasoning tokens arrive in delta.reasoning, content in delta.content. Set stream_options: {"include_usage": true} to get usage in the last chunk.
integer
Output cap for this request. max_completion_tokens is accepted as an alias. The hard ceiling is the model’s max_output_length in GET /v1/models, 8,192 tokens on Holo3 and Holo3.1.
number
Sampling temperature. Use 0.0 for deterministic single-shot calls (localization, OCR) and 0.8 in agent loops.
number
Nucleus sampling: sample only from the smallest token set whose probability mass reaches top_p.
integer
Sample only from the top_k most likely tokens. Not an OpenAI SDK argument, so pass it through extra_body like the Holo-specific fields.
string | string[]
Sequences that end generation when produced.
number
Penalizes tokens in proportion to how often they already appeared.
number
Penalizes tokens that already appeared at least once.
integer
Seed for best-effort reproducible sampling.
Each model lists the sampling fields it accepts in supported_sampling_parameters from GET /v1/models. n must be 1.

Response

200 with a chat completion object, or a stream of chunk objects when stream is true.
string
The action or answer: the constrained JSON object (structured-output mode) or the assistant text. null when the model responded with tool_calls only.
string
The thinking trace, present when thinking is on. Read it for visibility, but never feed it back: reasoning is not carried between turns.
object[]
Present in native function-calling mode only.
string
string
string
The call’s arguments, JSON-encoded.
string
stop, length (hit max_tokens or the model ceiling), or tool_calls.
object
Token counts for the request.
integer
integer
integer
integer
The part of the prompt served from the cache.
integer
The part of the completion spent thinking.

Streaming

Stream

Errors