OpenAI Decisions API
At DevDay on 29 September 2026, OpenAI announced the Decisions API: instead of a paragraph, you define a finite set of answers, send context, and get back one of them with a probability — in about 150 milliseconds. It's built on GPT-6 Luna and it's in limited preview. Here's what's confirmed, how it lines up against Jev, and how to ship a decision call today while you wait for access.
The Decisions API is OpenAI's entry into the decision-layer category: a bounded interface for software that needs an answer it can act on, not prose to parse. You give it a question with a fixed answer space — classify this, route that, choose the agent's next move — and it returns a selected answer with a probability score. OpenAI positions it for classification, routing, and agent action selection, the same high-frequency decisions the category was built for.
What's confirmed
- Announced at OpenAI DevDay on 29 September 2026, in limited preview (broader release said to be coming in the following days)
- Built on a version of GPT-6 Luna optimized for decisions
- Returns a classified answer in about 150ms, versus ~1.6s for a standard Luna call — roughly 10x faster
- You define a finite answer space; context can be text or images; you get back an answer plus a probability, not free text
- Aimed at classification, routing, and choosing an agent's next action
- No pricing or accuracy figures published yet
Why this matters: the category is real
OpenAI shipping a Decisions API is the strongest signal yet that "decision API" is a genuine category, not one startup's framing. TypeSafe AI defined the shape with Jev — context plus a finite answer space, one typed answer out — and OpenAI has now validated it with its own product built on Luna. Whichever you end up using, the takeaway is the same: for the small, frequent decisions inside routing and agent loops, a decision API beats prompting a chat model and parsing the reply.
OpenAI Decisions API vs Jev, in brief
| OpenAI Decisions API | Jev (TypeSafe) | |
|---|---|---|
| Approach | GPT-6 Luna optimized for decisions | Purpose-built System One model |
| Availability | Limited preview | Generally available |
| Speed | ~150ms | ~70–500ms |
| Input | Text + images | Text state |
| Confidence | Probability score | RLCD-calibrated + confidence |
| Get started | Join the preview | Grab a key now |
The honest read: OpenAI's version adds image input and rides the GPT-6 Luna lineage, which is a real advantage for multimodal context. Jev's bet is different — a model designed only for decisions, emitting a typed value in a single non-autoregressive pass and calibrated with RLCD so its probabilities track real outcomes. See the full head-to-head for where each one wins.
Does this site support the OpenAI Decisions API?
Not yet — it's limited preview, and there's no stable public interface to build against. We'll add OpenAI as a provider option when it reaches general availability, so you can point the same decide call at it without changing your code. Until then, this site runs on Jev, which is available today with the same category shape.
Ship a decision call today, while you wait for access
You don't have to wait on the preview to start. Jev is generally available and takes the same kind of request — a finite answer space in, one typed answer plus confidence out — so you can build the decision into your app now and swap providers later:
// Works today: a decision call to Jev while OpenAI's is in preview
const res = await fetch("https://jevtypesafeai.com/api/v1/decide", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.JEV_KEY}`, // jv_live_...
},
body: JSON.stringify({
state: { message: text },
questions: {
intent: { type: "choice", instructions: "Classify the message.",
criteria: { question: "a question", bug: "a bug report", billing: "a billing issue", spam: "spam" } },
urgent: { type: "noul", instructions: "Does this need a human within the hour?" },
},
}),
});
const { answers } = await res.json();
if (answers.urgent.noul > 0.8) escalate(answers.intent.choice); // both answers, one round trip- The New Stack — OpenAI answers TypeSafe's Jev with a Decisions API built on Luna — Details on Luna, the ~150ms latency, and the DevDay 2026 launch.
- Neowin — OpenAI DevDay 2026: Decisions API and more — DevDay round-up including the Decisions API announcement.
- @OpenAIDevs — Decisions API announcement — OpenAI's own post announcing real-time decision-making for apps.
FAQ
What is the OpenAI Decisions API?
A limited-preview API OpenAI announced at DevDay 2026 that returns one answer from a set you define, with a probability, in about 150ms. It's built on GPT-6 Luna and aimed at classification, routing, and choosing an agent's next action — a decision, not generated text.
Is the OpenAI Decisions API available now?
Only in limited preview as of DevDay on 29 September 2026, with a broader release said to be coming in the days after. There's no general availability, and no pricing or accuracy figures have been published yet.
How does it compare to Jev?
Both return a typed answer from a finite set. OpenAI optimizes GPT-6 Luna for the job and adds image input; Jev is a purpose-built decision model, text-only for now, calibrated with RLCD, and generally available today. See the dedicated OpenAI Decisions API vs Jev page for the full comparison.
Can I use the OpenAI Decisions API on this site?
Not yet — it's preview-only with no stable public interface to build on. We plan to add it as a provider when it's generally available. In the meantime this site runs on Jev, which takes the same kind of decision call today.
What can I use while it's in preview?
Jev (TypeSafe) is generally available and uses the same category shape — a finite answer space in, one typed answer plus confidence out. You can build your decision call now with Jev and switch providers later without changing the request shape.
See also: OpenAI Decisions API vs Jev · What is a decision API · What is Jev · Playground
Don't wait on the preview
Ship a decision call today with Jev — try one free in the browser, then grab a jv_live_ key.