DocsAPI keys

API reference

Ask for a decision

A decision model answers your questions about the messages with probabilities rather than text, so your code can branch on the answer directly.

POSThttps://api.momor.ai/models/decision

Each route serves one type of model. A chat model reasons and writes; a decision model evaluates your input against the answer types you define and returns calibrated probabilities, never text. Here auto, *, a tier and a name all reach decision models alone. Chat and decision models follow the two systems of Daniel Kahneman’s Thinking, Fast and Slow: a decision model is System One and a chat model System Two, which is why /models/two answers as /models/chat does.

Body

The body is the one Call a model takes, with systemPrompt as an array of questions. A decision takes no streaming, tools or responseSchema.

systemPromptQuestion[]Required
The questions, at least one.
namestringRequired
Unique in the request. The answer comes back under it.
typestringRequired
The kind of answer.booleanchoicescore
instructionsstringRequired
What the model is asked.
criteriaobject | string[]Required
What each answer means: a boolean explains true and false; a choice gives at least two values, each with what it means; a score lists two to ten levels, lowest first.
messagesMessage[]Required
What the questions are about. A decision reads the user’s messages only.
modelstring | objectDefault auto
Which decision models may answer, as on Call a model.
models(string | object)[]
Several selectors, tried in order.
prioritizationobject
Which providers lead and which serve nothing, zdr, zero data retention, deprecated and maxAge, as on Call a model.
keysobject
Your own provider keys for this call.
fileProcessingobjectDefault { "type": "none" }
Whether an attached file is converted to text first. Under zero data retention, anything but none is refused with 400.

Response

typestring
decision
modelobject
What served the call: name, tier, publisher and provider.
answersAnswer[]
One per question, in the order asked.
namestring
The question answered.
typestring
boolean, choice or score.
refusedboolean
true where the model declined the question.
probabilitynumber
For a boolean: the probability that the answer is true.
choicestring
For a choice: the value chosen.
scorenumber
For a score: the probability-weighted level, counted from 0.
confidencenumber
For a choice or a score: how concentrated the probabilities are. Absent where the model reports none.
probabilitiesobject
For a choice, by value; for a score, by level index.
usageobject
The provider and the tokens it counted.

Errors

Failures are problem documents, as on Call a model. The messages particular to a decision:

StatusCodeWhat happened
400
—
A decision carries its questions as systemPrompt, an array of at least one question.
400
—
A decision takes no stream, tools or responseSchema.
400
—
Every question needs a name of its own.
400
—
Question <name> needs instructions.
400
—
Question <name>’s criteria do not fit a <type>.
400
—
The provider’s: <model> decides on user messages alone, on text alone, or on text and inline images alone.
400
—
The provider’s: <model> takes at most <count> options or choices a question.
404
—
No decision model answers to the name. A chat model’s name sent here is not found.
502
—
<model> answered <question> with a letter that is not one of its options. Safe to retry.
Updated Oct 22, 2026
Esc