Models and limits
The model id, every limit that shapes a request, what each feature supports, and how to read the limits from the API.
API keys call one model, Olive. Send its id, olive, as model. A version
suffix such as olive@<version> returns 404.
Model id
olive
Text in, text out. Reasoning comes back in reasoning_content.
Olive
olive | |
|---|---|
| Input | Text. Documents and images are read as text after you upload them. See Files |
| Output | Text. Chat completions also return the reasoning, in reasoning_content |
| Context window | 65,536 tokens, prompt and output together |
| Maximum output | 16,384 tokens, reasoning included |
| Output when you set no limit | Up to 16,384 tokens on chat completions and completions. 4,096 tokens per model call on the Responses API |
| Reasoning effort | none, minimal, low, medium, high, xhigh |
| Streaming | Chat completions, completions, Responses |
| Function tools | Responses API. Untested on chat completions |
| File search | Responses API, over your own vector stores |
| Structured outputs | Ask for JSON in the prompt, then parse and validate it. response_format is untested |
| Web search | Coming soon |
| Embeddings, audio, images out | Not available |
An unknown model id returns 404 with the message
the model "<name>" does not exist.
Read the limits from the API
GET /models lists the models your key can call,
with the context window and output ceiling of each. Read the limits from here
rather than hardcoding them.
{
"object": "list",
"data": [
{
"id": "avey/olive",
"object": "model",
"created": 1762560000,
"owned_by": "avey",
"context_length": 65536,
"max_output_tokens": 16384
}
]
}The list prefixes the id with avey/. Requests accept either form.
Token budget
The context window holds the prompt and the output together. The output alone is capped at 16,384 tokens.
Reasoning is output. It counts toward max_tokens (max_output_tokens on
Responses) along with the answer. If the budget runs out while Olive is still
reasoning, the answer is cut off or missing:
| Endpoint | What you see |
|---|---|
| Chat completions | finish_reason is length. content can be empty or null |
| Responses | status is incomplete |
When you set a limit, leave room for both. Leave max_tokens unset on chat
completions and the ceiling of 16,384 applies. On the Responses
API, set max_output_tokens yourself: without it, each model call stops at
4,096 tokens.
A prompt that does not fit returns 400. Files you reference count as input,
and their text must fit the window too. Count a prompt before you send it with
POST /responses/input_tokens. The
count is free.
A large max_tokens holds headroom in your per-minute token limit while the
request runs. See Rate limits.
Long prompts take longer to answer. Stream long requests and set your client timeout as described in Errors.
Updates
Avey may update the model behind olive. The same prompt can then get a
different answer. Watch the Changelog, and re-run your evaluation
set when it records a model change.