Tīrtha is still being built, so some features and models may not work as expected yet. Billing always follows the prices shown. Something broken? Email [email protected].

Tīrtha

Pick a model. One API. Low prices.

Models from Qwen, DeepSeek, Google, Meta and more. Pick one, call it with one key, and pay per token from prepaid credit. Or let Tīrtha pick the model and check each tool call against your schema.

Prices per 1M tokens, read live from billing.

Qwen3.8-Maxby QwenCodingAgents and tools1M contextClosed model, no public weightsQwen3-Next-80B-A3B-Instructby QwenAgents and toolsLong documents262K contextApache-2.0Qwen3-VL-235B-A22B-Instructby QwenAgents and toolsImages and documents262K contextApache-2.0Ling-3.1-flashby inclusionAIReasoning1M contextMITQwen3-30B-A3Bby QwenChatCodingReasoning40K contextApache-2.0gemma-4-31B-it (FP4)by GoogleCodingAgents and toolsImages and documents262K contextApache-2.0DeepSeek-V4-Flash-0731by DeepSeekAgents and tools1M contextMITGLM-4.7by Z.aiChatCodingReasoning202K contextMITQwen3-Coder-480B-A35B-Instructby QwenCodingAgents and toolsLong documents262K contextApache-2.0gemma-4-31B-itby GoogleCodingAgents and toolsImages and documents262K contextApache-2.0DeepSeek-V4-Proby DeepSeekLong documents1M contextMITMiMo-V2.6-Proby XiaomiCodingAgents and toolsFrontier1M contextMITGLM-5.3-Flashby Z.aiLong documents1M contextMITDeepSeek-V4.1-Flashby DeepSeekImages and documentsLong documents1M contextMITGLM-5.2by Z.aiCodingLong documentsFrontier1M contextMITLlama-3.3-70B-Instructby MetaChatAgents and toolsMany languages131K contextLlama 3.3 Community LicenseBeam-1.0by ReflectionCodingReasoningAgents and toolsApache-2.0Qwen3.5-9Bby QwenAgents and toolsMany languages262K contextApache-2.0NVIDIA-Nemotron-3.5-Super-VLby NVIDIACodingImages and documents262K contextOpenMDW 1.1Qwen3.8-Flashby Qwentext1M contextClosed model, no public weightsgemma-3-27b-itby GoogleChatReasoningImages and documents131K contextGemma Terms of Usegemma-4-26B-A4B-itby GoogleCodingReasoningAgents and tools262K contextApache-2.0Mistral-Small-3.2-24B-Instruct-2506by Mistral AIChatCodingAgents and tools128K contextApache-2.0MiMo-V2.6-Flashby XiaomiCodingLong documents1M contextMITLlama-3.1-8B-Instructby MetaChatMany languages131K contextLlama 3.1 Community LicenseNVIDIA-Nemotron-3-Super-120B-A12Bby NVIDIAChatReasoningAgents and tools262K contextNVIDIA Nemotron Open Model LicenseMuse-Glimmer-30Bby Meta Superintelligence LabAgents and toolsImages and documentsMany languages131K contextApache-2.0gpt-oss-120bby OpenAIReasoningAgents and tools131K contextApache-2.0DeepSeek-V3.2by DeepSeekReasoningAgents and toolsLong documents163K contextMITDeepSeek-V4-Pro-0813by DeepSeekAgents and tools1M contextMITDeepSeek-V4.1-Flash-1017by DeepSeektextimage1M contextMITDeepSeek-V4-Flashby DeepSeekLong documents1M contextMITQwen3-235B-A22B-Instruct-2507by QwenCodingReasoningAgents and tools262K contextApache-2.0DeepSeek-R1-0528by DeepSeekCodingReasoningAgents and tools163K contextMITDeepSeek-V3by DeepSeekChatReasoning163K contextDeepSeek Model License (code: MIT)DeepSeek-V3.1by DeepSeekCodingReasoningAgents and tools163K contextMITDeepSeek-V4-Flash-Vision-Expby DeepSeekImages and documents1M contextMITgemma-3-4b-itby GoogleChatReasoningImages and documents131K contextGemma Terms of UseGLM-4.6by Z.aiReasoningAgents and tools202K contextMITGLM-5.3by Z.aiCodingFrontier1M contextGLM-5.3 Licensegpt-oss-20bby OpenAIReasoningAgents and tools131K contextApache-2.0granite-4.2-8bby IBMChatCodingReasoning524K contextApache-2.0Hy4-previewby TencentCodingReasoningFrontier1M contextApache-2.0Inkling-Smallby Thinking MachinesChatCodingAgents and tools524K contextApache-2.0Kimi-K2.6by Moonshot AICodingAgents and toolsImages and documents262K contextModified MITKimi-K3by Moonshot AICodingReasoningAgents and tools1M contextKimi K3 LicenseLing-3.0-flashby inclusionAICodingReasoningAgents and tools262K contextMITLing-3.0-flash-VLby inclusionAIReasoningAgents and toolsImages and documents262K contextMITMiMo-V2.5-Proby XiaomiCodingAgents and toolsLong documentsMITMinistral-3-14B-Instruct-2512by Mistral AIChatAgents and toolsMany languagesApache-2.0Mistral-Nemo-Instruct-2407by Mistral AIChatAgents and toolsMany languages131K contextApache-2.0Mistral-Small-24B-Instruct-2501by Mistral AIChatAgents and toolsMany languages32K contextApache-2.0Nemotron-3-Nano-Omniby NVIDIAAgents and toolsImages and documentsLong documentsNVIDIA Open Model AgreementNemotron-Content-Safety-3.5by NVIDIAtext131K contextOpenMDW 1.1NVIDIA-Nemotron-3-Ultra-550B-A55Bby NVIDIAChatCodingReasoning262K contextOpenMDW 1.1NVIDIA-Nemotron-3.5-Lightningby NVIDIAChatReasoningAgents and tools262K contextOpenMDW 1.1NVIDIA-Nemotron-Nano-12B-v2-VLby NVIDIAReasoningImages and documentsNVIDIA Open Model Licensephi-4by MicrosoftReasoning16K contextMITQwen2.5-72B-Instructby QwenChatCodingMany languages131K contextQwen LicenseQwen3-14Bby QwenChatCodingReasoning40K contextApache-2.0Qwen3-32Bby QwenChatAgents and toolsMany languages40K contextApache-2.0Qwen3-VL-30B-A3B-Instructby QwenCodingReasoningAgents and tools262K contextApache-2.0Qwen3.5-27Bby QwenMany languages262K contextApache-2.0Qwen3.5-35B-A3Bby QwenImages and documentsMany languages262K contextApache-2.0Qwen3.5-397B-A17Bby QwenMany languages262K contextApache-2.0Qwen3.6-27Bby QwenCodingAgents and tools262K contextApache-2.0Qwen3.6-35B-A3Bby QwenCodingAgents and tools262K contextApache-2.0Qwen3.8-27Bby QwenCodingAgents and toolsImages and documents262K contextApache-2.0
['Built with Llama', 'Gemma is provided under and subject to the Gemma Terms of Use found at ai.google.dev/gemma/terms.']
One key

Change one word to change models.

OpenAI-compatible, and it also speaks Anthropic messages and OpenAI responses. Point your client at Tīrtha and keep your code. Streaming and tool calls work the same way.

from openai import OpenAI
client = OpenAI(base_url="https://api.tirtha.ai/v1",
                api_key=TIRTHA_KEY)
client.chat.completions.create(
    model="catalog/qwen3.8-flash",
    messages=[{"role": "user", "content": "Hi"}])
Tīrtha · a router for coding agents that checks tool calls against your schema

Keep Claude or Codex for the thinking. Send the building to Tīrtha.

Send tirtha/auto instead of a model. With tirtha/auto, Tīrtha picks the model for each task by price, speed and accuracy, checks each tool call against your schema before serving it, and moves up a level when the check fails. Every response tells you what was checked.

"choices": [ ...your answer... ],
"tirtha": {
  "served_by":  "<base model id>",
  "checked":    true,
  "checked_by": "schema",
  "escalated":  false
}
Every response says what was checked and which level served it. Field list in the API reference.
  1. 1

    The right model answers

    Tīrtha picks the model for each task by price, speed and accuracy.

  2. 2

    Then it is checked

    Each tool call is checked against your schema. Code and prose are not tested; the response's label says what was checked.

  3. 3

    Pass: served. Fail: up a level

    With tirtha/auto, a request that fails moves up to Plus, then Max, and its tool calls are checked again.

Base

Checked and served

The model picked for the task answers, and each tool call is checked against your schema.

Input- / 1M
Output- / 1M
Plus

A stronger model

With tirtha/auto, only when the Base check fails. Its tool calls are checked against your schema again.

Input- / 1M
Output- / 1M
Max

A frontier model

The rare hard case that still needs the strongest model. Its tool calls are checked against your schema too.

Input- / 1M
Output- / 1M
On a Claude or Codex plan

Save plan headroom

Send routine tool calls and code generation to Tīrtha. You hit your Claude or Codex limit less often, and the strong model stays available for the hard parts.

Paying per token

Save dollars

With tirtha/auto, you pay for Plus or Max only when the check fails.

When auto moves a request up a level, you pay the level that answered, plus the first Base attempt at Base rates. Levels route to listed models, each under its own licence.

Tested in the open

Same tasks. Same scorer. Every model.

We publish Tīrtha's own scores once a version is named official. Until then, Tīrtha Bench shows how the models Tīrtha can use perform on the same 800 tool-calling tasks, and the model catalogue lists every model you can call.

Same tasks, same scorer

Every model on Tīrtha Bench ran the same tool-calling tasks and trap prompts, and was scored the same way.

Tīrtha Bench

Every model we test, ranked only where the test was the same.

Every raw row is public at tirtha.ai/bench/.

FAQ

Four questions, answered plainly.

How do I call a model?+
Pick it from the catalogue and put its id in the model field, with your Tīrtha key and the base URL https://api.tirtha.ai/v1. Each model is billed at its own price per token, shown on its card.
What exactly does Tīrtha check?+
With tirtha/auto, Tīrtha picks the model for each task by price, speed and accuracy, checks each tool call against your schema before serving it, and moves up a level when the check fails. If you pin a level, that level answers and every tool call is still checked against your schema. On Plus and Max a call that fails is removed from the response, which shows checked: false, and the tokens are billed at the pinned price. On Base a call that fails is retried once with the error, then returned marked as failing the schema check; you pay the pinned Base price for both attempts.
Do I have to change my client?+
Usually not. Tīrtha is OpenAI-compatible, and it also speaks Anthropic messages and OpenAI responses, so most clients only need a new base URL and key. So far we have tested OpenCode; the setup steps are on the coding agents page.
How do I pay?+
Prepaid credit, no subscription. Sign in with Google to get a key, add credit, and each request is taken from your credit at the price shown. See pricing.

Pick a model. Start in a minute.

Get an API key