OpenAI compatible API. Attested gateway. Public status.

TrustedRouter Synth

Run a panel of models inside the attested gateway, then use judge and final fallbacks to return one OpenAI-compatible answer.

Verify gateway
1 URLbase_url migration
100smodels and routes
0prompt logs by default

Run a panel of models inside the attested gateway.

trustedrouter/synth fans one request across several models, asks a judge model to evaluate the panel, and returns one OpenAI-compatible chat completion. Use it for hard prompts, evals, and prompts where one provider's refusal or error should not decide the whole result.

  • Panel calls, judge calls, and final synthesis calls stay in the attested gateway.
  • Judge and final models can each have up to 8 fallbacks.
  • Default quality mode judges with Kimi K2.6, falls back to MiniMax M3, synthesizes with GLM 5.2, then falls back to MiniMax M3.
  • Versioned presets are trustedrouter/iris-1.0, trustedrouter/prometheus-1.0, and trustedrouter/zeus-1.0.
  • Code-tuned presets are trustedrouter/iris-code-1.0, trustedrouter/prometheus-code-1.0, and trustedrouter/zeus-code-1.0.
  • Unversioned aliases such as trustedrouter/prometheus track the latest preset.
  • synthesize_non_refusals is the default and removes panel refusals before synthesis.
  • TrustedRouter stores billing and route metadata, not prompt/output content by default.
Synthcurl
curl https://api.trustedrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $TRUSTEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "trustedrouter/synth",
    "messages": [
      {"role": "user", "content": "Compare the best options and answer plainly."}
    ],
    "tools": [{
      "type": "trustedrouter:synth",
      "parameters": {
        "preset": "quality",
        "synthesis_prompt": "Return a short recommendation with tradeoffs.",
        "max_completion_tokens": 800
      }
    }]
  }'

Three presets

Same fusion engine — a Kimi K2.6 judge and a GLM 5.2 synthesizer — three panels. Call any of them by model id. How we measured them →

Budget

Iris 1.0

trustedrouter/iris-1.0

A small budget panel — the cheapest way into Synth. 62.6 on DRACO deep research, about $20 to run all 100 tasks.

Frontier

Zeus 1.0

trustedrouter/zeus-1.0

The commercial frontier on the panel — the ceiling. 73.4 on DRACO, the state of the art, about $180/100 tasks.

Code-tuned presets

Add -code to use the same budget, open, or frontier panel tier with the synth-code prompt path. The code variants use the code-tuned Kimi judge and code-specific panel and synthesis prompts.

Budget code

Iris Code

trustedrouter/iris-code-1.0

Frontier code

Zeus Code

trustedrouter/zeus-code-1.0

How it works

1. Panel

The gateway runs analysis_models in order, with normal provider fallback for each route. A failed or empty panel member is recorded as a panel failure, not a client-visible failure. The quality preset uses MiniMax M3, Kimi latest, GLM latest, Gemma 4 31B, and DeepSeek V4 Pro unless you supply a custom panel.

2. Judge

The judge sees the panel outputs and produces an internal assessment. judge_models, fallback_judges, and judges are aliases for the same ordered fallback list. If omitted, Kimi K2.6 is the first judge and MiniMax M3 is the fallback judge.

3. Final

The final model writes the visible answer. final_models, fallback_final_models, synthesis_models, and synthesizer_models are aliases for that ordered fallback list. If omitted, GLM 5.2 is the first final synthesizer and MiniMax M3 is the fallback synthesizer.

Parameters

NameUse
presetquality or budget. Sets a built-in panel unless analysis_models is supplied. Quality defaults to an open-model panel: MiniMax M3, Kimi latest, GLM latest, Gemma 4 31B, and DeepSeek V4 Pro.
analysis_modelsPanel model IDs. Must contain 1 to 8 models.
modelLegacy shorthand for the judge/final model when specific fallback lists are not supplied.
selection_strategysynthesize, synthesize_non_refusals, first_success, or first_non_refusal. The default is synthesize_non_refusals.
judge_modelsOrdered judge fallback list. Also accepts fallback_judges or judges. Defaults to Kimi K2.6, then MiniMax M3.
final_modelsOrdered final-answer fallback list. Also accepts fallback_final_models, synthesis_models, or synthesizer_models. Defaults to GLM 5.2, then MiniMax M3.
max_completion_tokensCaps each internal panel, judge, and final completion.
max_tool_callsReserved compatibility field, accepted from 1 to 16.

Exact model IDs are accepted. The gateway also resolves ~anthropic/claude-latest, ~openai/gpt-latest, ~google/gemini-pro-latest, ~google/gemini-flash-latest, ~kimi/latest, and ~zai/glm-latest aliases. The built-in quality panel uses minimax/minimax-m3, ~kimi/latest, ~zai/glm-latest, google/gemma-4-31b-it, and deepseek/deepseek-v4-pro. Default judging resolves to moonshotai/kimi-k2.7-code, then minimax/minimax-m3; default final synthesis resolves to z-ai/glm-5.2, then minimax/minimax-m3.

SDK examples

PythonOpenAI SDK
import os

from openai import OpenAI

client = OpenAI(
    api_key=os.environ["TRUSTEDROUTER_API_KEY"],
    base_url="https://api.trustedrouter.com/v1",
)

result = client.chat.completions.create(
    model="trustedrouter/synth",
    messages=[{"role": "user", "content": "Give the best answer."}],
)

print(result.choices[0].message.content)
TypeScriptOpenAI SDK
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.TRUSTEDROUTER_API_KEY,
  baseURL: "https://api.trustedrouter.com/v1"
});

const result = await client.chat.completions.create({
  model: "trustedrouter/synth",
  messages: [{ role: "user", content: "Give the best answer." }],
});

console.log(result.choices[0].message.content);

Operational notes

Cost

Synth is multiple model calls. Budget it as panel calls plus judge attempts plus final attempts. Use preset="budget" and max_completion_tokens for cheaper eval loops.

Streaming

Streaming runs the panel and judge first, then streams the final answer. Final fallback can switch before the first byte. After bytes are sent, the stream cannot safely switch to a different final model.

Privacy

The intermediate panel, judge, and final prompts live in enclave memory. Durable storage keeps request IDs, route metadata, usage, cost, and status, not prompt or output text by default.

Need an agent to wire it in?

Use the agent setup guide and ask the agent to call trustedrouter/synth only for hard prompts or evals.

Sign in

Choose a sign in method.