---
title: "Ask questions about an input (OpenAI Decisions format)"
method: POST
path: "/decisions"
tags: ["decisions"]
---

# Ask questions about an input (OpenAI Decisions format)

`POST /decisions`

## Request

- Base URL: `https://api.sea-lion.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.sea-lion.ai/decisions`
- Auth: API key in header `x-litellm-api-key`

Judge an `input` against 1 to 128 `questions` and get the answers back in the same order.

Question types are `predicate` (yes/no with `probability`), `choice` (one of the `choices`, with
`probabilities`), `score` (an index into `levels`, with `probabilities`) and `box` (the image region the
`instructions` describe, with `confidence`). Requests that break these rules are rejected with a 400 before
any provider is called. `model` is any decision model in the proxy
model list. System One decision models accept this format too, LiteLLM translates the request and the
answers. Streaming is not supported.

[Docs](https://docs.litellm.ai/docs/decisions)

## Request body

- object
  - `audio` union[]: Clef-omni only. Up to 4 embedded audio clips, each a base64 data URL or {content_type, base64}
    - union
      - string
      - object
        - `content_type` string, required: An audio/* media type, such as audio/wav
        - `base64` string, required: Base64-encoded audio bytes
  - `videos` union[]: Clef-omni only. Up to 2 embedded videos, each a base64 data URL or {content_type, base64}
    - union
      - string
      - object
        - `content_type` string, required: A video/* media type, such as video/mp4
        - `base64` string, required: Base64-encoded video bytes
  - `input` union, required: The text being judged, or user messages whose content mixes input_text and input_image parts
    - string
    - object[]
      - `role` 'user'
      - `type` 'message'
      - `content` union, required
        - string
        - union[]
          - union
            - object
              - …
            - object
              - …
  - `questions` union[], required: Predicate, choice and score questions. Answers come back in the same order
    - union
      - object
        - `type` 'predicate', required
        - `name` string, nullable: Echoed in the matching answer
        - `instructions` string, required: The yes/no question to ask about the input
      - object
        - `type` 'choice', required
        - `name` string, nullable: Echoed in the matching answer
        - `instructions` string, required: The question to ask about the input
        - `choices` object[], required: The options the model picks from. Values must be unique
          - `value` union, required
            - string
            - boolean
          - `description` string, nullable
      - object
        - `type` 'score', required
        - `name` string, nullable: Echoed in the matching answer
        - `instructions` string, required: The question to ask about the input
        - `levels` object[], required: Scale levels from lowest to highest. The score is a level index
          - `label` string, required
          - `description` string, nullable
      - object
        - `type` 'box', required
        - `name` string, nullable: Echoed in the matching answer
        - `instructions` string, required: What to find in the input's image
  - `safety_identifier` string, nullable: A stable id for your end user. Sent to OpenAI and dropped for other providers
  - `model` string, required: A decision model from the proxy model_list

## Response `200`

Successful Response

- OpenAIDecisionResponse
  - `model` string, required
  - `answers` union[], required
    - union
      - OpenAIPredicateAnswer
        - `type` 'predicate'
        - `name` string, nullable, required
        - `probability` number, required
      - OpenAIChoiceAnswer
        - `type` 'choice'
        - `name` string, nullable, required
        - `choice` union, required
          - string
          - boolean
        - `probabilities` OpenAIChoiceProbability[], required
          - `value` union, required
            - string
            - boolean
          - `probability` number, required
        - `confidence` number, required
      - OpenAIScoreAnswer
        - `type` 'score'
        - `name` string, nullable, required
        - `score` number, required
        - `probabilities` OpenAIScoreProbability[], required
          - `value` integer, required
          - `label` string, required
          - `probability` number, required
        - `confidence` number, required
      - OpenAIBoxAnswer
        - `type` 'box'
        - `name` string, nullable, required
        - `box` DecisionsBox, required
          - `top` number, required
          - `bottom` number, required
          - `left` number, required
          - `right` number, required
        - `confidence` number, nullable, required
      - OpenAIRefusalAnswer
        - `type` 'refusal'
        - `name` string, nullable, required
  - `usage` OpenAIDecisionUsage, required
    - `input_tokens` integer, required
    - `input_tokens_details` OpenAIDecisionInputTokensDetails
      - `cached_tokens` integer
      - `cache_write_tokens` integer
    - `output_tokens` integer, required
    - `output_tokens_details` OpenAIDecisionOutputTokensDetails
      - `reasoning_tokens` integer
    - `total_tokens` integer, required

## Changes

- **2026-10-21** `f2fb14eab3f5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/sea-lion/apis/litellm-api/changes/decisions/post.md)

---

[API](https://skmtc.dev/sea-lion/apis/litellm-api.md) · [All operations](https://skmtc.dev/sea-lion/apis/litellm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sea-lion/apis/litellm-api/revisions/1ba9123c189a?raw)
