staterequiredThe content to judge — a string, object or array.
questionsrequiredMaps a name to a question: {type: "noul", instructions} (the probability that the statement holds), {type: "choice", instructions, criteria: {option: guidance}} or {type: "score", instructions, criteria: [level guidance, …]}.
Request
curl https://yelno.ai/v1/decisions \
-H "Authorization: Bearer $YELNO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL",
"state": "Customer: I was charged twice for order 8812 and want one refunded.",
"questions": {
"is_billing_issue": {"type": "noul", "instructions": "The message is about a billing problem."},
"intent": {
"type": "choice",
"instructions": "What does the customer want?",
"criteria": {"refund": "Asks for money back.", "information": "Asks a question only."}
},
"urgency": {
"type": "score",
"instructions": "How urgent is this?",
"criteria": ["Can wait a week.", "Should be answered today.", "Needs action now."]
}
}
}'
Each answer is keyed by its question's name: {type: "noul", noul}, {type: "choice", choice, confidence, probabilities} or {type: "score", score, confidence, probabilities}.
Every JSON response carries the same yelno block a chat response does: request_id, provider, model, endpoint_id, attempts and cost. cost is {state: "final", currency, customer_nanos} when the provider reported the cost with the response, or {state: "pending", currency, note} when it reports it later — the charge then settles once. Errors use the standard error envelope; upstream text never reaches you.
Sending a model to a route it is not served on answers 422capability_unsupported with code: "operation_unsupported" and a message naming the route that serves it. Every model in the catalog shows its type and route.
Pricing. You pay the model's listed final price — shown on its catalog page — and nothing on top. A model without a fixed unit price is billed per request: its exact charge comes back with every response in yelno.cost. A hold is placed before dispatch and released down to the final charge; when the charge is reported after the response, the request settles once — it is never charged a guess.