BetaDecisionsSystem OneAPI only

Jev answers, it doesn't write

A System One decision model on Venice. Send shared context and ask one or many yes/no, choice, or scoring questions. Jev returns probabilities and confidence your application can act on, without generating prose or repairing JSON.

Get API Key
curl https://api.venice.ai/api/v1/decisions \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-latest",
    "state": "My payouts have failed for three days and nobody has replied.",
    "questions": {
      "is_urgent": {"type": "noul", "instructions": "Does this need urgent attention?"}
    }
  }'
Model ID
jev-latest
Endpoint
/api/v1/decisions
Answer types
Noul · Choice · Score
State + questions
64K tokens

Jev and the Decisions API are in beta. Availability and behavior may change without notice, and request and response schemas are not yet frozen.

Overview

What Jev is

Most models are built to generate text. When an application needs a decision, that usually means asking a chat model for JSON, validating what comes back, and digging out the one value that controls the next step.

Jev evaluates a state against questions with predefined answer types and returns machine-ready judgments instead of prose. Every question in a request is evaluated in parallel and in isolation against the same state.

On Venice

One key, anonymous

The same Venice key that reaches chat, image, video and audio reaches Jev. Venice keeps no copy of the state you send or the answers it returns, and passes nothing on for training. That matters when the state is a support thread, a medical note or a transaction record.

  • No state retention
  • No prompt retention
  • No training on your data

A worked example

One state in, typed decisions out

Pick a case to see the shape of a real response. These are illustrative figures, not a live call. Probabilities vary between requests, so evaluate Jev on your own examples before choosing production thresholds.

Request · State

My payouts have failed for three days and nobody has replied. Please help ASAP.

state: string

3 questions429 in · 73 out
noulis_urgent
0.95

Does this message require urgent attention?

0 · No1 · Yes
choicedepartment
Confidence 0.93

Which team should handle this ticket?

billing
0.95technical
0.05sales
0.00
scorefrustration

How frustrated is the customer?

1.27
0Calm
0.001Frustrated
0.732Very angry
0.27

Confidence 0.60 · Weighted across levels

Question types

Choose the answer shape

Three types cover the judgments software actually acts on. Answers come back keyed by the ids you choose, so the response maps straight onto your code.

Noul: a binary judgment

Returns a probability from 0 (no) to 1 (yes). There is no separate confidence field: near 0.5 is the uncertain answer.

"refund_requested": {
  "type": "noul",
  "instructions": "Does the customer
    explicitly request a refund?",
  "criteria": {
    "true": "Asks for money back",
    "false": "Does not ask"
  }
}

Choice: route or classify

Returns the selected option, every option's probability and a confidence value. Include an other or none option when the set may not cover every state.

"request_type": {
  "type": "choice",
  "instructions": "What is the primary
    request?",
  "criteria": {
    "refund": "Return money paid",
    "troubleshooting": "Fix a problem",
    "information": "Answer a question",
    "other": null
  }
}

Score: measure a spectrum

Ordered levels from lowest to highest, indexed from 0. The returned score is probability-weighted, so it can land between two levels.

"severity": {
  "type": "score",
  "instructions": "How severe is the
    reported issue?",
  "criteria": [
    "Cosmetic or no material impact",
    "Impaired, workaround exists",
    "Blocked, no workaround"
  ]
}

Confidence

Turn certainty into behavior

Choice and Score answers carry both the full distribution and a single confidence value derived from it, so your code can treat the answer and the certainty as separate signals.

≥ 0.90
Act on it. Route the ticket, apply the label, move the record.
≥ 0.60
Ask for confirmation. Present the answer as a suggestion rather than a decision.
below
Send it to human review and log the distribution.

Use higher thresholds for actions that are costly, destructive, financial or hard to reverse. Confidence does not guarantee correctness. It helps your application decide when not to act automatically.

JavaScript
const department = result.answers.department;

if (department.confidence >= 0.9) {
  await routeTicket(department.choice);
} else if (department.confidence >= 0.6) {
  await askForConfirmation(department.choice);
} else {
  await sendToHumanReview();
}

Limits

State + longest question
32KTokens, counted as the state plus the single longest question in the request.
State + all questions
64KTokens for everything in one request, however many questions you batch.
Input
Text + JSONPlain strings, or structured objects and arrays for records and logs.
Evaluation
ParallelEvery question runs at once, in isolation, against the same state.
Auth
Key or walletA Bearer API key, or an x402 wallet with prepaid USDC credits.
Compatibility
TypeSafeThe same handler is served at /systemone, so TypeSafe SDKs need only a base URL swap.

Model availability differs by account. List decision models with GET /models?type=decision and treat the Models API as authoritative, because pricing, limits and availability can change.

Pricing

What it costs on Venice

Billed per token on Venice: $0.042 per 1M input tokens, and nothing for the answers that come back.

Input / 1M tokens
$0.042
Per 1M tokens
Output / 1M tokens
Free
Answers are not billed

New Venice accounts include a free daily allowance and 500 welcome credits. No credit card required.

When to use another model

Jev is not a chat model

You needReach forEndpoint
A bounded judgment your software acts on directlyJevPOST /api/v1/decisions
Generated prose, explanations or multi-turn conversationA chat modelPOST /api/v1/chat/completions
Tool calling, or a long chain of dependent reasoningA reasoning modelPOST /api/v1/chat/completions
Open-ended answers with no defined option setA chat modelPOST /api/v1/chat/completions

A common pattern is both: Jev decides whether and where, a chat model writes the reply once the route is settled.

FAQ

Frequently asked questions

No. Jev is API only: it answers on POST /api/v1/decisions and has no surface in the Venice web app. The same Venice key that reaches chat, image, video and audio reaches it.

The returned score is weighted across the levels rather than a pick of one. A distribution of 0.00, 0.73 and 0.27 over three levels returns 1.27, which reads as mostly level 1, leaning toward level 2.

No. Noul returns a single probability from 0 to 1, and that value carries the certainty: near 0 or near 1 is a confident answer, near 0.5 is the uncertain one. Choice and Score return a separate confidence value because their answer and their certainty are not the same number.

No. Probabilities vary between requests, so treat the figures on this page as illustrative and evaluate Jev on your own examples before choosing production thresholds.

No. Venice keeps no copy of the state you send or the answers it returns, and passes nothing on for training.

Make your first typed decision.

One key, anonymous. Free to start, no credit card.

Get API Key