Use the OpenAI Decisions API for fast typed routing and scoring
Use OpenAI's Decisions API when an application needs a bounded classification, routing choice or score from text and images supplied as Base64 Data URLs or publicly accessible HTTP(S) image URLs. It returns typed estimates with GPT-6 Luna. Choose the Responses API for open-ended generation, custom structured objects and tool workflows. Start with a clearly defined question, then decide how uncertain or refused answers reach a reviewer.
Compare the two API paths ↓1. Choose Decisions or Responses by the result you need
The OpenAI Decisions API is in public beta, released on October 6, 2026. The current model is gpt-6-luna, through POST /v1/decisions. OpenAI's announcement says it is available to all developers; that is not a promise of free credits, every geography, unrestricted accounts or unlimited quota. Check the access and limits that apply to your API organization. Release changelog; official announcement.
For a fast classification API, first define the answer your code consumes. A known department, condition estimate or ordered severity fits Decisions. A narrative answer, extracted object with your own fields or model-requested tool call points toward Responses. The Decisions guide makes this distinction; the Luna model page documents Responses tool support.
Speed claim: OpenAI says Decisions using GPT-6 Luna can be up to 10x faster than GPT-6 Luna through the Responses API. This compares API paths; it does not establish that every request is exactly ten times faster or that Luna universally outperforms another model. We have not benchmarked either path. The table below is an editorial selection aid, not a measured comparison.
| Need | Decisions API | Responses API |
|---|---|---|
| Bounded typed decision | Decisions APIBuilt around predicate, choice and score questions. | Responses APIUse generation and a suitable schema when the result needs a richer custom structure. |
| Predicate | Decisions APIReturns an estimated probability for one condition. | Responses APICan generate a judgment, but that is not the Decisions predicate response contract. |
| Choice | Decisions APISelects a supplied option and returns its distribution and confidence. | Responses APICan generate structured categories; use the schema and validation your application requires. |
| Score | Decisions APIReturns a weighted average of ordered level indices, plus probabilities and confidence. | Responses APICan generate a custom rubric result or explanation; do not assume equivalent score semantics. |
| Open-ended or long-form text | Decisions APIA typed decision endpoint, not a long-form writing interface. | Responses APIAppropriate for general generation, reasoning and written explanations. |
| Tool workflows | Decisions APIYour application handles the returned decision. Tool calls are not supported as input. | Responses APISupports built-in tools and function calling with applicable models, including GPT-6 Luna. |
| Latency intent | Decisions APIOptimized for narrow decisions; OpenAI reports up to 10x faster than Luna through Responses. | Responses APIBroader output and workflow capabilities. Actual latency depends on the request and configuration. |
| Output shape | Decisions APIAn answers array: predicate, choice, score, or refusal for each question. | Responses APIGenerated output; use Structured Outputs for your own JSON schema or function calling for tool arguments. |
| Pricing contract | Decisions APIGPT-6 Luna /v1/decisions: $0.10 per 1M input tokens, with the caveats below. | Responses APIFollow model and processing-tier pricing; Decisions input-only charging does not transfer here. |
2. Supply shared evidence and explicit questions
A request contains model, input and questions. Give questions distinct name values so the corresponding answers are easy to identify. Input can be a text string or user messages containing input_text and input_image parts. Images may use Base64 Data URLs or publicly accessible HTTP(S) image URLs. Private image URLs or URLs requiring authentication are not confirmed as supported. The reference allows up to 128 images across one request.
File IDs (file_id) are still not supported. Other message roles, function calls, files, audio, tools and item references are outside the documented Decisions input contract. A separate voice integration does not turn this endpoint into an audio-upload API. Request reference.
One shared input may have multiple independent questions in its questions array, including different question types. If a second decision depends on the first answer, separate the requests as the guide recommends. Combining related decisions is not a demonstrated accuracy improvement or blanket cost saving. Multiple-question guidance.
3. Predicate: estimate whether one condition holds
A predicate answer contains type, name and probability, an estimate from 0 to 1. For example: Does this support request mention a billing problem? The probability describes the model's estimate of that condition. It is not a certified probability or guaranteed truth. Question and answer types.
Original risk-triage example — not executed: a request says, “Please change the destination on the order; I cannot confirm which address is on file.” Ask: Does this request need human review because the requested change is ambiguous or requires identity verification? Use the estimate to prioritize a review queue. It must not authorize an address change, account action or payment.
Make the condition observable and narrow. “Is this a good customer?” mixes undefined judgments; a specific condition about missing information is easier to label and evaluate. A refusal must enter a separate handling path rather than becoming probability zero.
4. Choice: route to a supplied category
A choice question takes developer-supplied options. Supply 2–255 unique choices, as required by the current reference. The answer returns choice, probabilities and confidence, alongside type and name. Each probability is associated with an option value. Define values and descriptions that are understandable, distinct enough to route reliably and broad enough to cover the intended requests. Choice reference.
Original support-routing example — not executed: “My receipt lists the wrong billing address, but the parcel tracking looks correct.” Use billing for invoice/accounting questions, technical for product-function problems, shipping for parcel movement or delivery, and other for requests outside those meanings. In a manually labeled example, billing would be the intended queue; that is an editorial label, not an API prediction we obtained.
Document how to handle messages spanning two queues. The selected option does not remove that ambiguity. Inspect the distribution and validate your review rules on labeled requests. Confidence is a decision signal, not a probability of factual correctness or permission to act.
5. Score: evaluate clearly ordered levels
A score question defines ordered levels, each with a label and an optional description. Its answer contains score, per-level probabilities and confidence, plus type and name. Level indices begin at 0. The score is the probability-weighted average of those indices, so it can fall between integer levels. It is not a selected single label. Scoring guide.
Original severity example — not executed: a support dashboard has a broken saved-view filter, but users can still search manually. Define low (0) as a display inconvenience with the task intact; medium (1) as an impaired task with a workable alternative; high (2) as a task blocked without an available alternative. This rubric addresses queue priority, not a medical, legal or security risk assessment.
Illustrative arithmetic, not a model result: probabilities of 0.20, 0.50 and 0.30 yield 0 × 0.20 + 1 × 0.50 + 2 × 0.30 = 1.10. The same average can hide different distributions. Review the probabilities as well as the score, and use choice if your application needs one category rather than an average.
6. Read a minimal request, then handle each answer type
This single illustrative curl example has not been run. $OPENAI_API_KEY is a placeholder; no key is included or needed to read this guide. Running it yourself would make a billable API request under your account's applicable terms. The synthetic text avoids customer records.
curl https://api.openai.com/v1/decisions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-luna",
"input": "The receipt shows an old billing address; parcel tracking is correct.",
"questions": [{
"type": "predicate",
"name": "billing_mentioned",
"instructions": "Does this support request mention a billing problem?"
}]
}'
After a successful HTTP response, inspect the answers array and branch on each answer's type: predicate, choice, score or refusal. A refusal carries the question name (or null for an unnamed question), without a usable scored answer; other questions may still receive answers. Route a refused or unexpected answer to a safe fallback or review. Do not interpret HTTP acceptance as a usable business decision. Also handle request errors separately. Answer reference.
7. Calibrate review rules before connecting actions
AgentSkillsHub editorial operational guidance: decision → threshold → ambiguous band → human review → action. Define which outcomes may proceed, which stay unresolved and who approves the final action. This is a design pattern, not an OpenAI-mandated numeric threshold.
Before relying on the decision, use labeled representative examples from the intended task. Include ambiguous, multi-topic and out-of-scope inputs. Check false positives, false negatives, the confidence distribution and behavior near each threshold. Choose review boundaries according to the consequences of mistakes, then inspect cases crossing those boundaries. The official guide recommends task-specific labeled examples; this page reports no benchmark or measured accuracy.
For payments, account suspension, employment, medical or legal decisions, and security-sensitive irreversible actions, do not use a single model score as the sole basis for automatic execution. A high confidence value cannot supply identity verification, organizational permission, professional judgment or an audit of the underlying evidence. Keep the action layer responsible for those checks.
8. Separate endpoint pricing, account tiers and rate limits
As checked on 2026-10-07, the GPT-6 Luna Decisions endpoint costs $0.10 per 1M input tokens. Only input tokens are charged: no cache-read, cache-write or output-token charges. Regional processing premiums and long-context input pricing multipliers apply. These terms are for /v1/decisions; other Luna requests follow their own model and processing-tier pricing. Endpoint pricing; model pricing.
The current account tiers are Free, Build, Launch and Grow. Free is subject to allowed geography and lists a $100 monthly usage limit. The three paid tiers qualify on cumulative credit purchases: Build requires $5 and lists a $500 monthly usage limit; Launch requires $100 and lists $5,000; Grow requires $500 and lists $200,000. Organizations upgrade as purchase thresholds are met. Current tier table.
A monthly usage limit is not a monthly bill, included credits or a per-model rate limit. “Free” is not a promise of free Decisions credits. Check Settings → Organization → Limits for your effective RPM/TPM and model access. We did not inspect or change an organization's limits, tier or billing configuration.
9. Minimize the data in every decision
Remove secrets, raw credentials and unnecessary sensitive data from the input. Images may contain private names, account details or other identifying information even when the visible task concerns an object. Send only the evidence needed for the question and keep operational logs appropriately limited.
Do not assume Decisions data is never retained. The current API data controls documentation lists abuse-monitoring retention for /v1/decisions and describes exceptions and eligibility for Zero Data Retention. Availability of a control does not mean it is active for your organization; confirm the current requirements, configuration and limitations before using sensitive inputs.
Next step: write one bounded routing question and its intended human-review rule, label a representative set of examples, and inspect the official Decisions guide before authorizing an experiment. Browse the workflow guides if your task instead needs an agent or MCP integration.
FAQ
When should I use Decisions instead of Responses?
Use Decisions for bounded predicate, choice or score outputs. Use Responses for general generation, long-form text, custom structured objects and tool workflows. Decisions does not universally replace Responses.
Does Decisions support any image URL?
It supports Base64 Data URLs and publicly accessible HTTP(S) image URLs, with at most 128 images per request. File IDs are not supported. Private or authentication-required image URLs are not confirmed as supported.
Is confidence the probability that an answer is factually correct?
Do not interpret it that way. Choice and score return a distribution and a separate confidence field. Validate review thresholds using labeled examples from your application.
Can a score fall between levels?
Yes. It is the probability-weighted average of ordered level indices starting at zero, so it can be fractional. It is not a selected single category.
Can one request return a refusal?
Yes. Each question may return a refusal instead of a scored answer. Handle it separately; other questions in the request can still receive answers.
Is the Decisions API free or always ten times faster?
No such guarantee is established. The current endpoint charges for input tokens, with regional and long-context caveats. OpenAI reports up to 10x faster than GPT-6 Luna through Responses; we did not benchmark this claim.
Did AgentSkillsHub run these API examples?
No. This guide is SOURCE_CHECKED_ONLY, with official sources checked on 2026-10-09. No API key was read, no API call was made and no credits were spent.
Primary sources
Source-checked 2026-10-09. Published documentation, account availability and a hands-on workflow are separate evidence. Examples and checklists here are editorial material.