Docs

System One (JEV)

JEV answers typed questions about a piece of state and returns typed answers with calibrated confidence. It is not a chat model: there is no prompt and no prose reply, so software can act on the result without parsing anything. It runs on its own endpoint, /v1/systemone, with the same ifu_ key as everything else on InferAll.

Endpoint

POST https://api.inferall.ai/v1/systemone, authenticated with Authorization: Bearer ifu_.... A request carries three fields: state (a string, object, or array), model, and questions, a map of your own names to typed questions. Answers come back under the same names.

curl https://api.inferall.ai/v1/systemone \
  -H "Authorization: Bearer ifu_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "state": "Customer wrote: my card was charged twice and nobody has replied in 4 days.",
    "model": "jev-latest",
    "questions": {
      "urgent": {
        "type": "noul",
        "instructions": "Does this need a human today?",
        "criteria": { "true": "time-sensitive or money at stake", "false": "can wait" }
      },
      "topic": {
        "type": "choice",
        "instructions": "Route this ticket",
        "criteria": {
          "billing": "payments and charges",
          "technical": "API or integration",
          "other": "anything else"
        }
      }
    }
  }'
{
  "model": "jev-1.13.0",
  "answers": {
    "urgent": { "type": "noul", "noul": 0.92 },
    "topic": {
      "type": "choice",
      "choice": "billing",
      "confidence": 1.0,
      "probabilities": { "billing": 1.0, "technical": 0.0, "other": 0.0 }
    }
  },
  "usage": { "input_tokens": 375, "output_tokens": 54 }
}

Three question types

noul returns a single number from 0 to 1, measuring how true the statement is of the state. choice picks one of up to 255 named options and returns the full probability distribution alongside a confidence. score places the state on a scale of 2–10 ordered levels and returns a continuous value, so you get 1.52 rather than only “minor”.

// A "score" question returns a continuous value plus the legend it was
// scored against, so you can act on 1.52 rather than on a bucket name.
{
  "severity": {
    "type": "score",
    "instructions": "How severe is this incident?",
    "criteria": ["no impact", "minor", "noticeable", "serious", "critical"]
  }
}

// ->
{
  "severity": {
    "type": "score",
    "score": 1.52,
    "confidence": 0.59,
    "legend": { "0": "no impact", "1": "minor", "2": "noticeable", "3": "serious", "4": "critical" },
    "probabilities": { "0": 0.0, "1": 0.48, "2": 0.51, "3": 0.01, "4": 0.0 }
  }
}

Confidence is the model’s own calibration, not a restatement of the top probability. Routing on it is the usual reason to prefer this over asking a chat model for JSON: act automatically above a threshold, and send everything below it to a person.

Models

jev-1.13.0 is the current version. jev-latest and jev-preview are aliases that resolve to it; the response always names the exact version that answered, so pin jev-1.13.0 if you need reproducibility. Context is 64k tokens per request, with 32k available for state plus the longest single question. Text only.

Pricing

$0.42 per million input tokens. Output tokens are free. The two-question example above used 375 input tokens, about $0.00016. Billing is per token from your balance, the same as any other paid model.

JEV is a paid model and the no-card trial does not cover it, so a trial key gets a 402 with code billing_required. Add a card at inferall.ai/billing to use it.

Errors

Every error carries a machine-readable code so you can branch without reading prose. model_unserved (400) means the id will never work here and retrying cannot help. missing_state, missing_questions, invalid_question_type and invalid_question (422) are validation. billing_required and credits_required (402) are billing. rate_limited (429) and capacity (503) are worth retrying after a short delay; see rate limits.

Why it is not in /v1/models

GET /v1/models is the list OpenAI-compatible clients walk to discover chat models, and it carries no modality field. Listing JEV there would hand every such client an id that fails on the only endpoint it knows how to call. JEV is discoverable here and on this endpoint instead. Ask for it by name.