POST/decisions

Create a decision

Use this endpoint to quickly answer classification or scoring questions about some input. You can ask multiple questions in one request.

  • IdempotentThe SDK sends Idempotency-Key, so a retried request is only applied once.

6 body fields
modelstringrequired
The model to use. Only `gpt-6-luna` is supported.
inputstringrequired
The input to evaluate for every question. Provide a text string or an ordered array of messages, function calls and outputs, or custom tool calls and outputs. Each tool output must identify a matching call by call ID. User messages and tool outputs can contain text and images; developer and system messages can contain only input text, and assistant messages can contain output text or refusals. Images can be base64 data URLs or publicly accessible HTTP(S) URLs; at most 128 images are allowed per request. Files, audio, and item references are not supported.
questionsarray<object>required
Ask 1–200 questions about the input. Each question can be a predicate, choice, or score. Answers come back in the same order.
safety_identifierstringoptional
Opaque caller-provided end-user identifier, scoped by the verified org. Match Responses' limit; this is never the authenticated user identity.
prompt_cache_keystringoptional
Partition prompt cache reuse by caller-provided key.
prompt_cache_optionsobjectoptional
Options for prompt caching. Supported for `gpt-5.6` and later models. By default, OpenAI automatically chooses one implicit cache breakpoint. You can add explicit breakpoints to content blocks with `prompt_cache_breakpoint`. Each request can write up to four breakpoints. For cache matching, OpenAI considers up to the latest 80 breakpoints in the conversation, without a content-block lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The `ttl` defaults to `30m`, which is currently the only supported value. See the [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching) for current details.

1 status code
200The answers and token usage.
modelstringrequired
The model used.
answersarray<object>required
Answers in question order. Any question can return a refusal instead of an answer; other questions can still receive answers. A refusal has `type: "refusal"` and the question's `name`, or `null` if it was unnamed.
usageobjectrequired
Token usage for the request.