Skip to main content

Evaluate (System One)

POST 

https://api.knox.chat/v1/systemone

Evaluate a state against a map of typed questions and return structured answers from Jev. This is not chat completion and does not stream. Guide: Jev.

Authenticate with a Knox API key. The same route is also served under /api/v1/systemone.

Request​

Request Headers​

NameTypeRequiredDescription
AuthorizationStringYesBearer <token> Knox API key from Keys.
Content-TypeStringYesapplication/json.

Request Body​

NameTypeRequiredDescription
stateString, Object, Array, or nullYesContent to evaluate. Text only. A string, JSON object, array of text, or JSON null.
questionsObjectYesNon-empty map of question ID → question. Answers come back under the same IDs. IDs are not sent to the model.
modelStringNojev-1.13.0, jev-latest, or jev-preview. Default jev-latest. Unknown IDs return 422.

Extra properties are forwarded upstream.

Question object​

Every question requires type and instructions.

NameTypeRequiredDescription
typeStringYesnoul, choice, or score.
instructionsString, Object, Array, or nullYesThe judgment to make about state.
criteriaObject or ArrayConditionalRequired object map for choice. Required array of ≥ 2 levels for score. Optional { true, false } object for noul.

Noul — yes/no. Optional criteria: { "true": "...", "false": "..." }.

Choice — pick one option. criteria is a map of option ID → description (string or null).

Score — ordered rubric. criteria is an array of at least two level descriptions.

cURL Example​

curl -X POST https://api.knox.chat/v1/systemone \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"state": "Hi, I have been trying to connect my Stripe account for 3 days and it keeps failing. I am losing sales. Please help ASAP.",
"model": "jev-latest",
"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"
}
},
"frustration": {
"type": "score",
"instructions": "How frustrated the customer appears",
"criteria": [
"Calm, just stating facts",
"Frustrated but civil",
"Very angry, strong language"
]
},
"is_urgent": {
"type": "noul",
"instructions": "The message conveys urgency or time-sensitivity"
}
}
}'

Response​

Success Response (200)​

model is the versioned ID that ran (for example jev-1.13.0), even if the request sent an alias.

{
"model": "jev-1.13.0",
"answers": {
"department": {
"type": "choice",
"choice": "billing",
"probabilities": {
"billing": 0.84,
"technical": 0.159,
"sales": 0.001
},
"confidence": 0.596
},
"frustration": {
"type": "score",
"score": 1.035,
"legend": {
"0": "Calm, just stating facts",
"1": "Frustrated but civil",
"2": "Very angry, strong language"
},
"probabilities": {
"0": 0.12,
"1": 0.73,
"2": 0.15
},
"confidence": 0.842
},
"is_urgent": {
"type": "noul",
"noul": 0.999
}
},
"usage": {
"input_tokens": 312,
"output_tokens": 48
}
}
NameTypeDescription
modelStringVersioned model that produced the answers.
answersObjectOne answer per question ID.
usage.input_tokensIntegerBilled tokens. Knox charges $0.042 / million, minimum $0.0001 on success.
usage.output_tokensIntegerPresent and free.

Answer objects​

typeFields
noulnoul (0–1) — probability the statement is true.
choicechoice (selected option), probabilities (option → float, sums to 1), confidence (0–1).
scorescore (can fall between levels), legend (index → description), probabilities, confidence.

Errors​

Bodies are TypeSafe-shaped: { "detail": "..." } or a 422 field list.

{
"detail": [
{
"loc": ["body", "questions"],
"msg": "questions is required",
"type": "value_error"
}
]
}
StatusMeaning
401Missing or invalid Knox token.
402Insufficient credits.
403Token model allowlist does not include this jev-* ID.
404No Jev channel is available.
422Validation failed (missing field, bad question, unknown model).
429Rate limited. Honor Retry-After when present.
502Failed to connect to provider.
529Upstream overloaded. Retry with backoff.

Failed upstream calls are not billed. Knox does not automatically retry 429 / 529.