TOGETHER AI / SYSTEM ONE

Tev1 4B Experimental. Compact decisions from Together AI.

Together AI’s experimental fine-tune of Qwen3.5-4B for routing, classification and policy checks. OpenRouter’s decisions endpoint returns typed answers and probabilities through the request format you already use for Jev.

Web, API and evaluation use the same credit balance. Minimum 1 credit per successful request.

Model context

32,768

tokens · site requests must fit within 32 KiB

Upstream input

$0.042 / 1M

USD / million input tokens

Upstream output

$0 / 1M

Output tokens are free

Platform input rate

600

credits / million input tokens · minimum 1 per call

/v1/systemone

Use the Jev request format

Live requests passed with text, JSON objects and arrays, combining Choice, Score and Noul. Tev1’s native runtime uses Chat Completions; OpenRouter adapts it behind the decisions endpoint, so this page uses the shared Jev playground. Span has a separate Noul-only conversation contract.

CHOICE / SCORE / NOUL

Three question types in one request

Choice selects a named option with probabilities and confidence. Score returns a value on your ordered scale. Noul returns P(true), from 0 to 1, for your application to threshold.

32,768-token model context. The current OpenRouter decisions endpoint accepts 2–20 Choice options, despite the model page describing up to 24. This service enforces 20. Score supports 2–10 ordered levels; requests support 1–8 questions within 32 KiB. Optional Noul true/false criteria must be text.

Try Tev1 4B Experimental in the playground

Start with support routing, then edit the shared state and questions. This page keeps a separate browser draft and supports saved configurations, history replay, evaluation and JavaScript, Python or cURL examples.

What do you want to decide?

Choose a task to load its input and rules. Loading examples uses no credits.

Tev1 4B Experimental ↗Span · behavior evaluation ↗

Tev1: 32,768-token context; the current OpenRouter decisions endpoint accepts at most 20 Choice options.

Text or JSON evaluated independently by every question.

Advanced question settings

Questions 1/8

Which team should handle this ticket? Use other when no option fits.Choice

Options

Maximum credit budget: 1 credits

We reserve this budget before the model runs, then charge actual usage and return the difference. Failed calls are refunded.

New account? Receive 100 credits once. Short requests typically use 1 credit; longer inputs can use more.

100 welcome credits · one balance for web & API

Draft saved in this browser · Your draft will be restored after sign-in.

Your current configuration stays in this browser tab for the setup flow.

ILLUSTRATIVE EXAMPLE · NO CREDITS USED

“I was charged twice this morning. Please refund the duplicate payment today.”

One input → structured decisions

Choice

Billing

Route to the billing queue

Yes / no

96%

Probability of an urgent request

Score

2.8 / 3

Urgency on a 0–3 scale

Static illustration of the output format. Values are not a live model response or a measure of accuracy.

Web runs and saved configurations are private to your account. API history stores usage only.Usage ↗

Your draft will be restored after sign-in.

Input and output credit costs

OpenRouter lists $0.042 per million input tokens and $0 per million output tokens, matching Jev’s upstream rates. Web, API and evaluation charge 600 credits per million actual input tokens, rounded up per request with a minimum of 1 credit. Output costs 0 credits.

max(1, ceil(input_tokens × 600 / 1,000,000))

1,000 input tokens cost 1 credit; 5,000 input tokens cost 3 credits. We reserve a budget before each call, settle actual input usage on success and refund failed calls. Output tokens do not add a charge.

Prices and request compatibility verified against OpenRouter model pages, endpoint metadata and live synthetic requests on October 1, 2026. This checks the API contract, not model accuracy. Upstream prices and limits may change.

Integrate through the decision API

Send model, state and questions to /v1/systemone with a Decision API API key. Set model to togethercomputer/tev1-4b-experimental. Read answers at data.result.answers and the final charge at data.creditsUsed.

// Server-side JavaScript (Node 20+ or Bun). Set DECISION_API_KEY.
const response = await fetch("https://decisionapi.org/v1/systemone", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.DECISION_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "model": "togethercomputer/tev1-4b-experimental",
  "state": "I was charged twice for order A-4471. Please refund the duplicate payment.",
  "questions": {
    "route": {
      "type": "choice",
      "instructions": "Which team should handle this ticket? Use other when no option fits.",
      "criteria": {
        "billing": "Payments, charges and refunds",
        "technical": "Bugs and product errors",
        "account": "Login and account access",
        "other": "None of these teams"
      }
    }
  }
}),
});
const body = await response.json();
if (!response.ok || body.code !== 0) throw new Error(body.message);
console.log(body.data.result.answers);
console.log(body.data.creditsUsed);