Everything goes through one endpoint, POST /v1/systemone. You send a state, which is the text being judged (a support message, a transaction, a policy), plus a set of named questions. There are three question types:
- Choice: pick one option from a list. Returns the choice, a probability for every option and a confidence.
- Score: place the state on an ordered rubric. Returns a score, per-level probabilities and a confidence.
- Noul: is this statement true? Returns a single probability between 0 and 1.
Here's a trimmed version of the example in TypeSafe's quick start:
{
"model": "jev-latest",
"state": "Hi, I've been trying to connect my Stripe account for 3 days and the integration keeps failing. I'm losing sales. Please help ASAP.",
"questions": {
"department": {
"type": "choice",
"instructions": "Which team should handle this",
"criteria": {
"billing": "Payment or subscription issues",
"technical": "Bugs or integration problems",
"sales": "Pricing or account questions"
}
},
"is_urgent": {
"type": "noul",
"instructions": "The message conveys urgency or time-sensitivity"
}
}
}
What comes back is typed values, not a paragraph: "choice": "technical" with a probability for each department, and a number for is_urgent. Every question is evaluated in parallel and in isolation against the same state, so adding questions barely moves the response time.