Skip to main content

Request a decision

POST 

/api/v1/deciders/:decider_id/decisions

Evaluates the decider against input and records the decision. The questions come from the decider, never from the request, so a call site can only supply what is judged. To send the questions with the request, use POST /api/v1/decisions.

Everything that can refuse the request is checked before the decision is written, so a refusal is a 4xx and never a polled failure: the agent's tool surface (400 DECIDER_AGENT_NOT_TOOL_LESS), a tool that cannot answer (400 DECIDER_TOOL_NOT_CALLABLE), a paused project (409 PROJECT_PAUSED) and, for an agent, quota admission (429 QUOTA_EXCEEDED).

A tool backend is called with { input, questions } and must answer { answers: [{ name, probability | choice | score, probabilities?, confidence? }] }, the request and response of OpenAI's Decisions API; an answer outside that contract fails the decision with DECISION_ANSWER_INVALID.

With wait: false, the default, the answer is 201 with the decision queued; poll GET /api/v1/decisions/{decision_id} or subscribe to decisions.completed and decisions.failed. With wait: true it is 201 with the decision settled.

Request​

Responses​

The decision — queued, or settled when wait is true