OpenAI
OpenAI releases the Decisions API in beta, typed answers from gpt-6-luna on v1/decisions
Checked by machine against OpenAI’s page on .
OpenAI released the Decisions API in beta with gpt-6-luna, on a new endpoint, v1/decisions; its API changelog lists it on 6 October 2026. The changelog's one-line description: turn text and images into typed answers 10x faster than the Responses API. "Typed" here means one of three things — the probability that a condition is true, a choice from a fixed set, or a score against a rubric. If you call a model only to classify content, route requests or prioritize work, this endpoint is built for that job.
What changed
The Decisions API evaluates text, images, or both and returns typed answers about 10x faster than the Responses API. It is in public beta , gpt-6-luna is the only model it currently offers , and you call it at its own endpoint,POST /v1/decisions. The guide's SDK examples need Python 3.26.0, JavaScript 7.30.0, Go 3.73.0, Ruby 0.101.0 or Java 4.78.0, or later.
A request has three fields.model names the model; inputis the shared evidence — a text string, or user messages containing text and images ; andquestionslists what to evaluate, each with its type, instructions, and any allowed choices or score levels. The response is ananswers array, and the unique nameyou give each question comes back on its answer. The guide's complaint example sends the input "I was charged twice for my order." with onechoice question named department, asking which department should handle the complaint; its first option is billing.
There are three question types:
- predicate checks a condition, such as visible damage, and returns
probability, an estimate from 0 to 1 that the condition is true. - choice selects one option, such as a department, and returns
choice, one of the values you supplied , with a probabilities array for the options and aconfidencefield. - score rates the input against ordered levels, such as severity, and returns
score, the probability-weighted average of the level indices. Indices start at 0 ; in the guide's example, probabilities of 0.1, 0.7 and 0.2 give 1.1, between two levels.
In the complaint example's response, which the guide labels illustrative ,department comes back as billingwith probability 0.95 and confidence 0.93. The code samples also handle an answer whose type isrefusal.
Independent questions can share one request and one input ; a question that depends on an earlier answer needs a separate request. Images must be inline base64 data URLs: hosted HTTP or HTTPS image URLs andfile_idinputs are not supported here.
On gpt-6-luna, input costs $0.10 per 1M tokens , and input is all you pay for: no cache-read, cache-write or output-token charges. Regional processing premiums and long-context input multipliers still apply. These rates are for /v1/decisions only; other gpt-6-luna requests follow the model's own pricing. The API supports Zero Data Retention and HIPAA use for eligible customers , with data residency and regional processing in the United States and Europe (EEA and Switzerland).
What it means for you
OpenAI draws the line itself: use Decisions when your application needs one of these answer types, and Structured Outputs on the Responses API when you need an object that follows your own JSON schema, such as extracted fields or a written explanation.
Our guide What Structured Output Is has both kinds of work in one support ticket. Its issue field and its wants_refund flag are the questions Decisions answers: a choice and a predicate. Its order_id, copied out of the email, and its summary, a sentence the model writes, are an extracted field and a written explanation — the Structured Outputs side of the line. If a request of yours only sorts, routes or rates, it belongs on /v1/decisions; if it also pulls text out or writes some, keep the schema, or split it into two requests.
What you gain by moving is a number. In that guide, issue came back as one word and nothing more; asked as a choicequestion, the same judgement comes back with a probability for every option and a confidence. OpenAI's advice is to set your cut-off from labeled examples of your own, weighing what a false positive and a false negative cost you. What falls below the cut-off goes to a person.
On cost, a Decisions call bills input only , while your Responses calls on the same model keep the model's own pricing. Compare the two on your real traffic before you move.
And remember it is a beta. Keep the call behind one function in your code, so a change to the fields before general availability is a change in one place. Update your SDK to at least the version listed for your language first , and if your images are hosted links or uploaded files today, encode them as base64 before you send them.
The source
OpenAI's API changelog, the entry of 6 October 2026, and the Decisions API guide.