Updated 07:53
OpenAI's Decisions API beta bills only input tokens, and a refusal is one of its answers
The OpenAI Decisions API turns classification into a typed call with three question types, input-only pricing and a short list of hard limits.
OpenAI's API changelog for October 6 lists a new endpoint: the Decisions API, in beta, running only on gpt-6-luna. It takes text, images or both and returns typed answers rather than generated text. The changelog's headline claim is that it is "10x faster than the Responses API." The guide repeats the figure as "about 10x faster" and gives no benchmark behind it, so treat it as a vendor number.
Three question types
A request is a POST /v1/decisions with a model, an input (a string, or user messages with input_text and input_image parts) and a questions array. Each question carries a type, a unique name and instructions. There are three types:
predicatereturns aprobabilitybetween 0 and 1 that a condition holds.choicetakes a list ofchoices, each avalueand adescription, and returns one of them plusprobabilitiesand aconfidence.scoretakes orderedlevels, each alabelanddescription, lowest first. It returns ascorethat is the probability-weighted average of the 0-based level indices, so it can land between levels.
A sketch assembled from the documented field names (not OpenAI's sample code):
{
"model": "gpt-6-luna",
"input": "Ticket text goes here",
"questions": [
{ "type": "predicate", "name": "is_billing",
"instructions": "Is this ticket about billing?" },
{ "type": "choice", "name": "queue",
"instructions": "Which queue should handle it?",
"choices": [
{ "value": "support", "description": "Product help" },
{ "value": "sales", "description": "Pricing and plans" }
] }
]
}
The response is an answers array. Each answer echoes its question's name and has a type of predicate, choice, score or refusal. That last one is the only failure mode the guide documents: a refusal is per question, inside a successful response, so a client that reads only the field it expects will miss it.
Input-only pricing
The guide prices the endpoint at $0.10 per million input tokens, with no cache-read, cache-write or output charges. Regional processing premiums and long-context multipliers still apply. Zero Data Retention and HIPAA use are supported for eligible customers, and data residency is available in the US and in Europe (EEA plus Switzerland).
Billing only input makes sense for a call whose output is a handful of numbers. It also means cost scales entirely with what you send, including base64-encoded images.
The limits
The guide is short on hard numbers, and the gaps matter for a beta:
- Images must be inline base64 data URLs. "Hosted HTTP or HTTPS image URLs and
file_idinputs aren't supported by this endpoint." - Only
gpt-6-lunais available. - Independent questions can share a request, but dependent decisions need separate requests.
- The page states no maximum question count, image size, token limit, rate limit, HTTP error codes or retry behavior.
- General availability is expected "in the coming weeks."
For anything that needs a custom JSON object or a tool call, the guide points back to Structured Outputs or function calling.
Where it fits
This is the narrowest shape a model API can take: no prose, no tool loop, a probability per question. It competes with the cheap-model classification pipelines teams already build on top of chat endpoints. The same week, on October 7, Anthropic released Claude Haiku 5.5 aimed at the same "classification, routing, extraction" work, at $0.10 per million input tokens and $0.50 for output. The two per-token prices are not directly comparable, because tokenizers differ and Decisions bills no output at all, but the input number landing at the same figure in the same week is worth noting for anyone pricing a routing layer.
Primary sources: OpenAI API changelog, OpenAI Decisions API guide, Claude Haiku 5.5 overview, read 2026-10-13.