Deciders
Request a decision with inline questions
Evaluates questions sent with the request against input, answered by the agent or tool the request names (exactly one of agent_id and tool_id, held to the same rules as a decider's backend), and records the decision with its questions. The request and answers are those of OpenAI's Decisions API, with the backend in place of model.
No decider names the questions, so the decision carries them in questions and has no decider_id or decider_version. Admission, wait and the tool contract are those of POST /v1/projects/{project_id}/deciders/{decider_id}/decisions.
post/v1/projects/{project_id}/decisions
Request
- Base URL: https://api.naturali.ai
- URL: https://api.naturali.ai/v1/projects/{project_id}/decisions
- Auth: one of:
- HTTP bearer
- OAuth 2 (authorization code, authorization URL https://api.naturali.ai/authorize, token URL https://api.naturali.ai/token, scopes: mcp:access)
Request body
Example request
{
"agent_id": "agent_V1StGXR8Z5jdHi6B",
"tool_id": "tool_V1StGXR8Z5jdHi6B",
"questions": [
{
"type": "choice",
"name": "department",
"instructions": "Which department should handle this complaint?",
"choices": [
{
"value": "billing",
"description": "Payments, invoices and refunds."
},
{
"value": "technical",
"description": "Problems using the product."
}
]
},
{
"type": "predicate",
"name": "needs_human",
"instructions": "Must a person read this before any automated reply?"
}
],
"input": "I was charged twice for the same order.",
"metadata": {
"author": "John",
"revision": 2
},
"wait": true
}Response
The decision — queued, or settled when wait is true
Example response
{
"id": "dec_V1StGXR8Z5jdHi6B",
"project_id": "proj_V1StGXR8Z5jdHi6B",
"decider_id": "dcd_V1StGXR8Z5jdHi6B",
"decider_version": 1,
"questions": [
{
"type": "choice",
"name": "department",
"instructions": "Which department should handle this complaint?",
"choices": [
{
"value": "billing",
"description": "Payments, invoices and refunds."
}
],
"levels": [
{
"label": "Workaround available",
"description": "A task fails, but another way works."
}
]
}
],
"answers": [
{
"name": "department",
"probability": 0.92,
"choice": "billing",
"score": 1.1,
"probabilities": [
{
"probability": 0.95
}
],
"confidence": 0.93
}
],
"error": {
"code": "AI_PROVIDER_ERROR",
"message": "Provider returned 402: insufficient credits"
},
"generation_id": "gen_V1StGXR8Z5jdHi6B",
"metadata": {
"author": "John",
"revision": 2
}
}Changes
No recorded changes to this operation across all 1 revision of this API.