---
title: "Create a decision"
method: POST
path: "/decisions"
tags: ["Decisions"]
---

# Create a decision

`POST /decisions`

Evaluate ordered classification and scoring questions against shared input. Answers are returned in question order.

Supply input as a string or user messages containing text and inline images. Only user messages with `input_text` and `input_image` parts are supported; non-user roles, function calls, files, audio, and item references are not supported. Images require a data URL, not an external URL or file ID. At most 128 images are allowed across the request.

Each question can return a refusal instead of a scored answer. A refusal has type `refusal` and the corresponding question name, or null if unnamed.

## Request body

- DecisionRequest
  - `model` string, required
  - `input` union, required — The text or images to evaluate for every question. Provide a text string or user messages containing text and inline images. Images must be inline data URLs; at most 128 images are allowed across all messages in one request. External URLs, files, audio, tools, and item references are not supported.
    - string
    - object[]
      - `role` 'user', required
      - `content` union, required — Text evidence or an ordered list of text and inline image parts.
        - string
        - union[]
          - union
            - object
              - …
            - object — An inline image. External URLs and file IDs are not supported.
              - …
      - `type` 'message'
  - `questions` QuestionParam[], required
    - union — A question about the request's input, with an optional correlation name.
      - object — Estimate how likely it is that a statement about the input is true.
        - `type` 'predicate', required — The type of the object. Always `predicate`.
        - `name` string
        - `instructions` string, required
      - object — Choose from the supplied options based on the input.
        - `type` 'choice', required — The type of the object. Always `choice`.
        - `name` string
        - `instructions` string, required
        - `choices` ChoiceOptionParam[], required
          - `value` union, required — Choice values are typed: a string and a boolean with the same text are distinct.
            - string
            - boolean
          - `description` string
      - object — Rate the input against the supplied ordered levels.
        - `type` 'score', required — The type of the object. Always `score`.
        - `name` string
        - `instructions` string, required
        - `levels` ScoreLevelParam[], required
          - `label` string, required
          - `description` string
  - `safety_identifier` string, nullable — Opaque caller-provided end-user identifier, scoped by the verified org. Match Responses' limit; this is never the authenticated user identity.

## Response `200`

The answers and token usage.

- DecisionResponse
  - `model` string, required
  - `answers` AnswerResource[], required
    - union — A completed question always includes its name, including null when unnamed.
      - object
        - `type` 'predicate', required — The type of the object. Always `predicate`.
        - `name` string, nullable, required
        - `probability` number, required
      - object
        - `type` 'choice', required — The type of the object. Always `choice`.
        - `name` string, nullable, required
        - `choice` union, required — Choice values are typed: a string and a boolean with the same text are distinct.
          - string
          - boolean
        - `probabilities` ChoiceProbabilityResource[], required
          - `value` union, required — Choice values are typed: a string and a boolean with the same text are distinct.
            - string
            - boolean
          - `probability` number, required
        - `confidence` number, required
      - object
        - `type` 'score', required — The type of the object. Always `score`.
        - `name` string, nullable, required
        - `score` number, required
        - `probabilities` ScoreProbabilityResource[], required
          - `value` integer, required
          - `label` string, required
          - `probability` number, required
        - `confidence` number, required
      - object — The model declined to answer this question. Other questions in the same request can still receive answers.
        - `type` 'refusal', required — The type of the object. Always `refusal`.
        - `name` string, nullable, required
  - `usage` ResponseUsageResource, required
    - `input_tokens` integer, required
    - `input_tokens_details` InputTokensDetailsResource, required
      - `cached_tokens` integer, required
      - `cache_write_tokens` integer, required
    - `output_tokens` integer, required
    - `output_tokens_details` OutputTokensDetailsResource, required
      - `reasoning_tokens` integer, required
    - `total_tokens` integer, required

## Changes

- **2026-10-06** `4c61cc7cab6e` — 1 warning
  - removed the optional property `usage/compute_units` from the response with the `200` status
- **2026-10-06** `9282ee8bb704` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/openai/apis/openapi/changes/decisions/post.md)

---

[API](https://skmtc.dev/openai/apis/openapi.md) · [All operations](https://skmtc.dev/openai/apis/openapi/llms.txt) · [OpenAPI document](https://skmtc.dev/openai/apis/openapi/revisions/ca22e4f7ee15?raw)
