LLMTR Ornith 1.0 35B
Ornith 1.0 35B is a first-party coding model hosted in Turkey. It is trained to carry out multi-step tasks inside real repositories rather than to emit single-shot code. Call it through /v1/chat/completions with the canonical model id llmtr/ornith-1-35b.
| Property | Value |
|---|---|
| Model id | llmtr/ornith-1-35b |
| Context window | 32,768 tokens |
| Price (input / output / cache read) | $2.00 / $5.00 / $0.50 per 1M tokens |
| Tool calling | Yes |
| Prompt cache | Yes |
| Image input | No (text only) |
| Reasoning | Always on, cannot be disabled |
curl "$LLMTR_BASE_URL/v1/chat/completions" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ -d '{ "model": "llmtr/ornith-1-35b", "messages": [ { "role": "user", "content": "Find and fix the bug in this Python function." } ], "max_tokens": 2048, "stream": true }'Reasoning is always on
Section titled “Reasoning is always on”The model reasons step by step before answering, on every request. This cannot be turned off: sending reasoning: false or similar fields makes no difference. The reasoning steps do not mix into the answer; they are returned separately in message.reasoning_content.
The practical consequence is that reasoning is spent from your max_tokens budget. If the budget is small it is consumed entirely during reasoning, content comes back empty and finish_reason is length. Even a trivial question can spend a few hundred tokens thinking.
Set max_tokens to at least 1500. For coding and agent tasks, 2048-4000 is recommended.
Reasoning tokens are included in completion_tokens and billed as output; they are not charged twice.
Response time and streaming
Section titled “Response time and streaming”Ornith is built for long, multi-step coding work. On those requests generation takes considerably longer than on lightweight chat models, and the larger the requested output, the longer it takes.
Use "stream": true with this model. On streaming requests the gateway holds the connection open while the model is still producing its answer and sends periodic SSE keepalive frames, so intermediate proxies do not treat the connection as idle and drop it. Keepalive frames are SSE comment lines (they start with :) and are ignored by every compliant client — they are never interpreted as content.
If you do not use streaming, be generous with your client-side timeout; most HTTP clients default to something (typically 30-120 seconds) that is far too short for this model. A 30-minute timeout is a safe starting point.
Capacity
Section titled “Capacity”The model serves a limited number of simultaneous requests. When it is at capacity, further requests are not held in a queue indefinitely: they receive HTTP 503 with the model_busy type and a Retry-After header:
{ "error": { "message": "This model is at capacity right now. Please try again in a few minutes.", "type": "model_busy" }}When you get this error, wait for the Retry-After interval and try again. The error is transient and the request is not billed.
Tool calling
Section titled “Tool calling”The model supports the standard OpenAI tools / tool_choice fields and returns finish_reason tool_calls when it calls a tool. See Tool Calling for details.
On a tool-calling turn content is empty and tool_calls is populated; this is expected. On the next turn, append the assistant message together with its tool_calls field to the history.
Prompt cache
Section titled “Prompt cache”Across consecutive requests, a shared prompt prefix (the system prompt, the history of the same conversation) is kept in cache automatically. The number of tokens served from cache is returned in usage.prompt_tokens_details.cached_tokens, and those tokens are billed at the cache read price ($0.50 per 1M tokens) instead of the input price.
Keeping your system prompt and conversation history in the same order across requests measurably improves the cache hit rate.
Image input
Section titled “Image input”The model accepts text only. A request containing image_url is rejected by the gateway with HTTP 400 and the unsupported_input type. Use one of the vision-capable models in the catalog for image understanding.
Data residency
Section titled “Data residency”Requests are processed on our servers in Turkey and are not forwarded to a third-party provider. Prompt and response contents are not stored in the database.