Everything here speaks the OpenAI Chat Completions API, so connecting is a base
URL and a key. Each configuration below was read from that tool's own
documentation and run against this endpoint — including the two that
do not work yet, which say so.
base urlhttps://api.tiyuvta.ai/v1model qwen/qwen3.8-27b
Connects directly
no proxy, no translation layer
Cline
VS Code agent
direct
Open the Cline settings panel and set API Provider to OpenAI Compatible.
Base URL, API Key and Model ID as below.
Under Model Configuration, fill the numbers so Cline budgets correctly rather than guessing.
Base URL
https://api.tiyuvta.ai/v1
API Key
your tiyuvta key
Model ID
qwen/qwen3.8-27b
Context Window
262144
Max Output Tokens
32768
Image Support
on — the model takes images and video
Computer Use / tool calling
on
Input / Output price
$0.40 / $2.90 per million
What we checked.Configuration read from Cline's own OpenAI-Compatible page; the endpoint answers every request shape Cline sends, including tool calls and streamed usage.Cline docs
Cursor
editor
direct
Settings → Models. Add a custom model with the id below.
Put your tiyuvta key in the OpenAI API Key field, switch on Override OpenAI Base URL, and set it to the base URL below.
Press Verify.
Turn OFF the other models in that list. With the override set, Cursor can still route a request meant for another vendor's model through this base URL, and the failure looks like our endpoint rejecting a model it has never heard of.
Override OpenAI Base URL
https://api.tiyuvta.ai/v1
Model name
qwen/qwen3.8-27b
What we checked.Cursor sends ordinary Chat Completions, which this endpoint serves. The caveat below is Cursor's, not ours, and it is the one that wastes an afternoon.Cursor docs
What we checked.Config shape read from opencode's providers page. The model key must match an id from GET /v1/models, which is why the snippet uses the exact id the catalogue returns.opencode docs
What we checked.Written against Pi's models.json reference. Every compat flag Pi offers for partial OpenAI endpoints was tested here and none is needed: the developer role, reasoning_effort and streamed usage all work, so the defaults are correct.Pi docs
OpenAI SDK
your own code
direct
python
from openai import OpenAI
client = OpenAI(
base_url="https://api.tiyuvta.ai/v1",
api_key=os.environ["TIYUVTA_API_KEY"],
)
reply = client.chat.completions.create(
model="qwen/qwen3.8-27b",
messages=[{"role": "user", "content": "Explain KV caches in one sentence."}],
# This model reasons first. A small budget is spent entirely on reasoning and
# returns empty content with a 200 — give it room.
max_tokens=1024,
)
What we checked.Two lines change: base URL and key. This is the path every other tool on this page is doing on your behalf.our docs
What we checked.Aider routes OpenAI-compatible providers through LiteLLM, whose openai/ prefix path was exercised against this endpoint directly.Aider docs
What the endpoint supports
measured 2026-08-17, with a live key
Works
streaming — SSE deltas, and usage arrives in the final chunk with stream_options.include_usage
tool calls — typed function calls; a weather tool returned {"city":"Haifa"}
structured output — response_format json_object and json_schema, enforced during decoding
reasoning — reasoning_effort in, and reasoning text streams as delta.reasoning before delta.content
developer role — accepted, so clients that send it for reasoning models need no compat flag
max_completion_tokens — accepted as an alias for max_tokens, so no parameter mapping is needed
legacy completions — /v1/completions answers, for clients that still use it
stop, temperature, top_p — accepted and applied
Does not
n > 1 — rejected with n is not supported for n != 1. A client asking for several candidates per call gets an error, not one candidate.
embeddings — there is no embeddings endpoint. Clients that expect one for search or memory need a second provider.
Both are listed because a client that needs one of them fails at the worst
moment — mid-task — and the error reads like our fault. If either matters to
you, say so before you build on it.
Not yet
two clients need an API shape we do not serve
Claude Code
needs Anthropic Messages (/v1/messages)
blocked
Claude Code speaks the Anthropic Messages format and points at a gateway with ANTHROPIC_BASE_URL plus a credential in ANTHROPIC_AUTH_TOKEN. This endpoint speaks Chat Completions, so something has to translate.
Anthropic's own gateway documentation says plainly that routing Claude Code to non-Claude models through a gateway is not supported by them. That is their position, and it applies whatever translator you put in the middle.
The usual advice — run a LiteLLM proxy — does not work here, measured today: the proxy's /v1/messages route forwards to the upstream's /v1/responses, which this endpoint does not serve, and the call 404s. The LiteLLM Python SDK does bridge correctly; the proxy does not.
claude-code-router is the other candidate. Version 3.0.21 starts, enforces its own API key, and keeps its configuration in SQLite rather than the JSON file that every published guide still shows — so those guides are stale. We have not completed an end-to-end call through it and will not claim one.
Codex's provider configuration takes base_url, env_key and wire_api — and wire_api now accepts only responses. The chat value that older guides show is gone, so pointing Codex at a Chat Completions endpoint is no longer a configuration option.
Which leaves a translator, and the same measurement applies: the LiteLLM proxy's /v1/responses route also calls the upstream's /v1/responses rather than converting to Chat Completions, so it 404s against this endpoint.
The honest fix is on our side, not in a proxy: serve /v1/responses. It is on the engine's list.
We could have published a proxy recipe for both of these and it would have read
well. It was tested instead, and it does not work — so it says so here until the
endpoint serves those two shapes itself.
These six are configured the same way as the cards above, from their own
documentation. We have not run each one end to end, which is why they are a table
and not a card: the cards are the ones we tested.
get a key
$10 of credit, one email, no card.
Enough to point your editor at it, run a real task, and see the numbers on your
own work rather than ours.