AIREITER

OpenAI Decisions API Pricing: What Each Call Costs

Last Updated: 2026-10-23 00:21:19

A 500-token routing decision costs $0.00005 at the standard rate. That makes OpenAI's Decisions API cheap enough for high-volume gates, but not automatically safe enough for high-impact actions: its probabilities still need calibration on your own labeled data.

The bill starts at fractions of a cent, not a per-call fee

OpenAI Decisions API pricing is $0.10 per 1 million uncached input tokens, while output tokens are free. OpenAI now describes the endpoint as generally available, powered only by gpt-6-luna, and available at POST /v1/decisions in the current Decisions guide.

There is no separate per-request fee in the published pricing. The basic formula is:

monthly cost = requests × average billed input tokens ÷ 1,000,000 × $0.10

Cost examples at 10K, 100K, and 1M requests

For a workload averaging 500 input tokens per request:

Monthly requestsInput tokensStandard input costCost per request
10,0005 million$0.50$0.00005
100,00050 million$5.00$0.00005
1,000,000500 million$50.00$0.00005
Bar chart showing OpenAI Decisions API input cost for 10K, 100K, and 1M requests

Predicate, choice, and score outputs add no output-token charge. Equivalent Responses JSON is generated and billed at the model's output rate; the OpenAI price table lists standard gpt-6-luna output at $0.50 per million tokens.

Cache reads, writes, regional processing, and long context

The $0.10 headline is not the only possible input rate. The current guide says prompt-cache reads receive discounted pricing, while cache writes use the standard gpt-6-luna cache-write rates. OpenAI's rate card lists standard Luna cached input at $0.01 per million tokens, a 30-minute cache write at $0.125, and a 12-hour write at $0.25 per million tokens.

Caching begins only when the reusable shared-input prefix contains at least 1,024 tokens. The questions do not count toward that minimum, and question-specific images sit outside the reusable prefix. Cache reads and writes are already included in usage.input_tokens; adding them again would double-count usage, according to the prompt-caching section.

Regional or data-residency endpoints can add a 10% uplift for eligible newer models. The official pricing and availability section also warns that long-context multipliers may apply. Check the live rate card before committing a compliance workload because both modifiers can change the simple $0.10 calculation.

OpenAI API pricing page showing current model rates

The endpoint is narrow by design

The Decisions API turns evidence into one of three typed results. It is a classifier and scorer, not a cheaper general-purpose response endpoint.

Question typeReturnsGood fitPoor fit
predicateProbability from 0 to 1Fraud gate, visible-damage check, relevance filterA written reason for the decision
choiceOne supplied option, option probabilities, confidenceQueue routing, document category, next actionAn unknown or dynamically generated category
scoreWeighted score, level probabilities, confidenceSeverity, urgency, lead qualityExtracting names, dates, or arbitrary fields

A score accepts 2 to 10 ordered levels. A request can carry 1 to 400 questions, but only independent questions should share a request. If question two depends on answer one, OpenAI says to make a second request after receiving the first answer.

Multiple independent questions can reuse the same evidence. For example, one support ticket can be checked for refund intent, routed to a department, and scored for urgency without resending the ticket three times. The usage guide says num_model_requests counts the request, not its questions.

What changed after public beta

The current What's new list replaces several launch-era limits:

  • The question cap increased from 200 to 400.
  • Prompt caching is available for shared input.
  • Inputs can include native JSON, conversation history, function-call records, and matching tool outputs.
  • Images can use public HTTP/HTTPS URLs or inline base64; file_id, audio, files, and item references remain unsupported.
  • Organization reporting is available at GET /v1/organization/usage/decisions; it requires an admin key with api.usage.read and can group results by project, API key, or model.
Current OpenAI Decisions API guide

Pick Decisions or Responses by output contract

Use the Decisions API when application code already knows the allowed answer shape. Use the Responses API when the model must compose information, and use function calling when the model must select a tool and supply its arguments.

RequirementBest defaultReason
Yes/no gate with a probabilityDecisionsNative predicate output; no generated answer charge
Select one known routeDecisionsReturns each option's probability plus confidence
Rank against an ordered rubricDecisionsNative weighted score and level distribution
Return arbitrary JSON fieldsResponses with Structured OutputsDecisions has no custom JSON output schema
Explain why an item was rejectedResponsesDecisions does not generate prose explanations
Choose a tool and create argumentsFunction callingDecisions selects an answer but does not produce tool arguments

At 100,000 calls with 400 input tokens each, Decisions input costs $4. If an equivalent Responses call emits 30 output tokens each, Luna's published rates produce $4 of input plus $1.50 of output, or $5.50 before any reasoning tokens. The endpoint choice still depends on whether the application needs generated fields or explanations.

Both endpoints now receive discounted cache reads. Measure cache-hit tokens from the response usage object instead of estimating them from prompt length.

Cheap mistakes are still expensive

A low token bill does not reduce the cost of a false approval, bad moderation action, or incorrect payment route. OpenAI's answer-interpretation guidance recommends setting thresholds with labeled examples and weighting the different costs of false positives and false negatives.

That concern also appears in developer discussion. In a production-oriented Reddit thread about decision APIs, u/Ctbhatia wrote:

“a gate that says skip beats one that guesses wrong.” Source: u/Ctbhatia on r/LLMDevs

The API's confidence and probabilities are signals, not a published calibration guarantee. A result with 0.90 confidence should not be assumed to be correct 90% of the time until that relationship is measured on representative data.

OpenAI says Decisions is about 10 times faster than Responses in the official guide, but publishes no p50, p95, region, payload size, or comparison configuration. Benchmark from the intended deployment region before setting a latency budget.

Production gate: calibrate, abstain, then automate

  1. Build a labeled set from the real workload, including ambiguous cases and costly failure modes.
  2. Run the same questions over that set and chart false-positive and false-negative rates at different thresholds.
  3. Add an explicit abstain path in application code. Low-confidence or conflicting answers should enter human review rather than forcing a route.
  4. Monitor token usage and request counts with GET /v1/organization/usage/decisions, then audit a sample of automated outcomes after launch.

A deployment decision table

OpenAI Decisions API is the right default for short, high-volume, bounded evaluations inside an existing OpenAI stack. Price alone is not a reason to migrate.

WorkloadRecommendationMain condition
Support or lead routingUse DecisionsCategories are fixed and labeled examples are available
Image damage screeningTrial DecisionsBenchmark image accuracy; hosted URLs are now supported
Long policy plus short itemTest both endpointsVerify actual cache-hit tokens and latency
Compliance or destructive actionUse Decisions only as a gateRequire abstention, review, and asymmetric thresholds
Extraction plus explanationUse ResponsesOne richer call can avoid a second generation request
Tool selection with argumentsUse function callingThe output contract matches the action directly
EU or regulated workloadConsider DecisionsConfirm eligibility, residency, and the regional premium

OpenAI Decisions API pricing FAQ

Is the Decisions API priced per request or token?

It is priced by input tokens, not by request. Standard uncached input currently costs $0.10 per 1 million tokens, subject to caching and applicable regional or long-context modifiers.

Are Decisions API output tokens free?

Yes. The official Decisions guide states that output tokens are not charged.

Is there a free tier?

OpenAI's current Decisions documentation does not list a dedicated free tier. Account credits or contractual terms can still affect what an organization pays.

Does prompt caching work with the Decisions API?

Yes. Shared-input prefixes of at least 1,024 tokens can qualify, and OpenAI places an implicit breakpoint at the end of shared input by default. Question content and question-specific images are not part of that reusable prefix.

Is Decisions cheaper than the Responses API?

Usually for short, bounded classifications that need no generated text. The advantage can shrink when Responses output is tiny or disappear when the workflow needs a second call for extraction or explanation.

How many questions fit in one request?

The current limit is 1 to 400 questions. Independent questions can share input; dependent questions require separate requests.

Are images supported and billed?

Yes. Decisions accepts hosted HTTP/HTTPS image URLs and inline base64 images, and image input contributes to billed input usage. file_id image references are not supported.

Does regional processing cost more?

It can. OpenAI's pricing page applies a 10% uplift to eligible regional and data-residency endpoints for newer models; verify the live rate for the target region before deployment.