---
title: "Answer typed questions about an input"
method: POST
path: "/v1/decisions"
tags: ["Decisions"]
---

# Answer typed questions about an input

`POST /v1/decisions`

## Request

- Base URL: `https://inference.openrelay.inc`
- URL: `https://inference.openrelay.inc/v1/decisions`
- Auth: HTTP bearer

Answers typed questions about a text or JSON input: a choice, a score or a yes/no, with probabilities. Bills input tokens only.
Each answer carries its probabilities and a confidence; nothing is generated. Served by openrelay/qwen3.6-35b-decide, which reads the probability of each option's letter at one token; check a model's supported_apis on GET /v1/models for decisions. Online only: the Batch API does not accept /v1/decisions.

Requires a funded balance. Any field this schema does not list is rejected with 400 unknown_field. stream is dropped: a decision is always a single JSON response. Limits: 1 to 64 questions per request, 10 MiB request body.

Requires the `inference.invoke` permission. See [Permissions](https://docs.openrelay.inc/docs/permissions) for the roles and API key permissions that include it.

## Request body

- DecisionRequest: A typed-decision request: a state to decide about and a set of questions, each answered as a label or a score. stream is dropped; a decision is always a single JSON response. Any field this schema does not list is rejected by the gateway with 400 unknown_field.
  - `model` string, required: openrelay/qwen3.6-35b-decide.
  - `questions` object, required: Question id to question ({type, instructions, criteria}). Between 1 and 64 questions.
  - `state` union, required: The input to decide about. Objects and arrays are serialized to JSON text before the model reads them.
    - string
    - object
    - unknown[]
      - unknown

## Response `200`

OK

- DecisionResponse: A decisions response (opaque; additionalProperties carries the rest of the dialect).
  - `answers` object
  - `model` string: The public model id requested.
  - `openrelay` OpenRelayResponseMeta: What the request is billed, on every online inference response.
    - `cost_nano_usd` integer: What this call is billed, in nanoUSD. Also sent as the OpenRelay-Cost-Nano-USD header.
    - `priced_at` string: Pricing basis, e.g. online.
  - `usage` object

## Other responses

- `400`: The request is invalid
- `401`: Missing or invalid API key
- `402`: Refused for spend: the organization's balance is below the spend floor (insufficient_balance), or the API key's spend budget is used up (key_budget_exceeded)
- `403`: Refused, type permission_error. An inference call, a batch create or a file upload is refused while the account is unavailable, paused or under review (account_suspended, account_unavailable) or being verified (account_pending_verification), and an inference call names a model that takes an access request first (model_access_required). With permissions enabled, a role, key restriction, network rule or policy refuses the request (permission_denied, with permission and denied_by), or the model is outside the key's, role's or organization's model list (model_not_allowed, with permission, denied_by, model and allowed_models_hint); the OpenRelay-Required-Permission header names the permission.
- `413`: The upload exceeds the 200 MB limit
- `429`: Too many concurrent uploads; retry shortly
- `503`: The action could not be dispatched; retry

## Changes

- **2026-10-26** `7fe59d94a9f5`: 31 info
  - added the non-success response with the status `403`
  - added the optional property `error/allowed_models_hint` to the response with the `400` status
  - added the optional property `error/allowed_models_hint` to the response with the `401` status
  - added the optional property `error/allowed_models_hint` to the response with the `402` status
  - …27 more
- **2026-10-24** `8c16f9b582de`: 1 warning
  - removed the optional property `routing` from the response with the `200` status
- **2026-10-21** `dc9750cb25b5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/openrelay/apis/openrelay-api/changes/v1/decisions/post.md)

---

[API](https://skmtc.dev/openrelay/apis/openrelay-api.md) - [All operations](https://skmtc.dev/openrelay/apis/openrelay-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openrelay/apis/openrelay-api/revisions/7fe59d94a9f5?raw)
