Decisions
Typed answers to classification questions with OpenAI Decisions, and TypeSafe System One.
POST /v1/decisions serves OpenAI Decisions with the same key you use for chat: send input and typed questions, and get back typed answers with probabilities instead of generated text. It serves openai/gpt-6-luna.
| Endpoint | POST https://api.ohmygpt.com/v1/decisions |
| Auth | Authorization: Bearer $OHMYGPT_API_KEY |
| Model | openai/gpt-6-luna |
| Response | Non-streaming (one JSON response) |
curl https://api.ohmygpt.com/v1/decisions \
-H "Authorization: Bearer $OHMYGPT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-6-luna",
"input": [{
"type": "message",
"role": "user",
"content": [{"type": "input_text", "text": "I was charged twice for my subscription this month."}]
}],
"questions": [{
"type": "choice",
"name": "department",
"instructions": "Which department should handle this?",
"choices": [
{"value": "billing", "description": "Payments and refunds."},
{"value": "support", "description": "General support."}
]
}]
}'{
"model": "gpt-6-luna",
"answers": [
{
"type": "choice",
"name": "department",
"choice": "billing",
"probabilities": [
{ "value": "billing", "probability": 1.0 },
{ "value": "support", "probability": 0.0 }
],
"confidence": 1.0
}
],
"usage": {
"input_tokens": 124,
"input_tokens_details": { "cached_tokens": 0, "cache_write_tokens": 0 },
"output_tokens": 0,
"output_tokens_details": { "reasoning_tokens": 0 },
"total_tokens": 124
}
}The request and response follow OpenAI's Decisions format exactly, so OpenAI's examples work once you change the base URL, the key, and the model ID. Decisions are billed on input tokens, and each response's charge is in the X-Cost-Credits header, as on every endpoint.
TypeSafe System One
POST /v1/systemone serves TypeSafe System One with the model typesafe/jev-latest. Requests and responses follow TypeSafe's System One format. Send JSON, or multipart/form-data with the JSON in a first part named request followed by one part per image. Request headers that start with TypeSafe-Danger-Zone- reach the model as sent.