Which models can I use?
Set model to kev-4b or strands-decider-2b. gpt-6-luna returns 404.
OpenAI Decisions API compatible
Run open weight models with OpenAI’s Decisions API shape. Send predicate, choice, and score questions to api.decider.cloud/v1/decisions.
Public preview. Best-effort availability.
| OpenAI Hosted API | Decider Hosted API |
|---|---|
curl https://api.openai.com/v1/decisions \ | curl https://api.decider.cloud/v1/decisions \ |
-H "Authorization: Bearer $OPENAI_API_KEY" \ | -H "Authorization: Bearer NO_KEY_REQUIRED" \ |
-H "Content-Type: application/json" \ | -H "Content-Type: application/json" \ |
-d '{ | -d '{ |
"model": "gpt-6-luna", | "model": "kev-4b", |
"input": "I was charged twice for my order.", | "input": "I was charged twice for my order.", |
"questions": [{ | "questions": [{ |
"type": "predicate", | "type": "predicate", |
"name": "refund", | "name": "refund", |
"instructions": "Is the customer asking for a refund?" | "instructions": "Is the customer asking for a refund?" |
}] | }] |
}' | }' |
curl https://api.decider.cloud/v1/decisions \
-H "Authorization: Bearer NO_KEY_REQUIRED" \
-H "Content-Type: application/json" \
-d '{
"model": "kev-4b",
"input": "I was charged twice for my order.",
"questions": [{
"type": "predicate",
"name": "refund",
"instructions": "Is the customer asking for a refund?"
}]
}'No API key needed. Decider ignores Authorization, so any value works. answers[] come back in OpenAI’s shape.
Cold starts: The API scales to zero when idle. Your first request after inactivity can take about 30 seconds while models load.
predicateReturns probability.
curl https://api.decider.cloud/v1/decisions \
-H 'Content-Type: application/json' \
-d '{
"model": "kev-4b",
"input": "The package arrived with a cracked screen.",
"questions": [
{
"type": "predicate",
"name": "visible_damage",
"instructions": "Does the product have visible damage, such as a crack, tear, or dent? Ignore shadows and damage to the packaging."
}
]
}'input
“The package arrived with a cracked screen.”
{
"model": "kev-4b",
"answers": [
{
"type": "predicate",
"name": "visible_damage",
"probability": 0.977614
}
],
"usage": {
"input_tokens": 42,
"output_tokens": 21
}
}{
"model": "strands-decider-2b",
"answers": [
{
"type": "predicate",
"name": "visible_damage",
"probability": 0.8889
}
],
"usage": {
"input_tokens": 102,
"output_tokens": 19
}
}choiceReturns choice, probabilities, and confidence.
curl https://api.decider.cloud/v1/decisions \
-H 'Content-Type: application/json' \
-d '{
"model": "kev-4b",
"input": "I was charged twice for my order.",
"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."
},
{
"value": "shipping",
"description": "Delivery and tracking."
},
{
"value": "other",
"description": "Requests outside these categories."
}
]
}
]
}'input
“I was charged twice for my order.”
confidence
{
"model": "kev-4b",
"answers": [
{
"type": "choice",
"name": "department",
"choice": "billing",
"probabilities": [
{
"value": "billing",
"probability": 0.595829
},
{
"value": "technical",
"probability": 0.024898
},
{
"value": "shipping",
"probability": 0.061882
},
{
"value": "other",
"probability": 0.317391
}
],
"confidence": 0.461105
}
],
"usage": {
"input_tokens": 55,
"output_tokens": 69
}
}{
"model": "strands-decider-2b",
"answers": [
{
"type": "choice",
"name": "department",
"choice": "billing",
"probabilities": [
{
"value": "billing",
"probability": 0.8353
},
{
"value": "technical",
"probability": 0.0199
},
{
"value": "shipping",
"probability": 0.0218
},
{
"value": "other",
"probability": 0.123
}
],
"confidence": 0.7804
}
],
"usage": {
"input_tokens": 94,
"output_tokens": 58
}
}scoreReturns score, probabilities, and confidence.
curl https://api.decider.cloud/v1/decisions \
-H 'Content-Type: application/json' \
-d '{
"model": "kev-4b",
"input": "Export fails in Safari but works in Chrome.",
"questions": [
{
"type": "score",
"name": "severity",
"instructions": "How severe is this issue?",
"levels": [
{
"label": "Cosmetic",
"description": "Appearance only; no lost functionality."
},
{
"label": "Workaround available",
"description": "A task fails, but another way works."
},
{
"label": "Fully blocked",
"description": "A task fails with no workaround."
}
]
}
]
}'input
“Export fails in Safari but works in Chrome.”
confidence
{
"model": "kev-4b",
"answers": [
{
"type": "score",
"name": "severity",
"score": 1.212709,
"probabilities": [
{
"value": 0,
"label": "Cosmetic",
"probability": 0.1476
},
{
"value": 1,
"label": "Workaround available",
"probability": 0.492091
},
{
"value": 2,
"label": "Fully blocked",
"probability": 0.360309
}
],
"confidence": 0.238136
}
],
"usage": {
"input_tokens": 57,
"output_tokens": 105
}
}{
"model": "strands-decider-2b",
"answers": [
{
"type": "score",
"name": "severity",
"score": 0.987001,
"probabilities": [
{
"value": 0,
"label": "Cosmetic",
"probability": 0.181682
},
{
"value": 1,
"label": "Workaround available",
"probability": 0.649635
},
{
"value": 2,
"label": "Fully blocked",
"probability": 0.168683
}
],
"confidence": 0.474453
}
],
"usage": {
"input_tokens": 110,
"output_tokens": 107
}
}Set model to kev-4b or strands-decider-2b. gpt-6-luna returns 404.
Not yet. Both models are text only. Send a string, or user messages with input_text parts, which are joined with blank lines. input_image returns 422.
Each level is sent as label: description, or the label alone when there’s no description.
answers in request order, in OpenAI’s shape, plus model and usage.
No. Kev and Strands won’t match gpt-6-luna or each other. Set thresholds per model on your own examples.
The same as /v1/systemone: 8 questions, 255 choices, 2–10 levels, and a 256 KiB body. A busy API returns 429 with Retry-After.
Free during public preview. No API key needed.
Prefer the TypeSafe shape? See the API docs for /v1/systemone.