> For the complete documentation index, see [/llms.txt](/llms.txt).

> Source: /api/systemone

# System One API

> Solar Decide is in beta. The `/v1/systemone` schema may change before general availability.

Send a **state** along with one or more typed **questions**, and Solar Decide returns a decision for each. Because the model writes no prose, every question is answered in a single forward pass and output tokens are not billed.

OpenAPI spec: `./openapi/openapi-systemone.yaml`

- `POST /systemone`

<br />

## Response

**Return values**

Returns an object whose `answers` field holds one answer per question, keyed by the question names sent in the request.

**Common fields**

<table><tbody><tr><td><strong>model</strong> string<br />A string indicating the version of the model that was utilized for the request.</td></tr><tr><td><strong>answers</strong> object<br />The decision for each question, keyed by the question names sent in the request.</td></tr><tr><td><strong>answers\[name].type</strong> string<br />The question type this answer was produced for, echoed from the request. One of <code>choice</code>, <code>score</code>, or <code>noul</code>.</td></tr><tr><td><strong>usage</strong> object<br />Usage statistics for the request.</td></tr><tr><td><strong>usage.input\_tokens</strong> integer<br />Number of tokens in the state and the questions.</td></tr><tr><td><strong>usage.output\_tokens</strong> integer<br />Number of tokens generated. Solar Decide writes no prose, so this is one token per question and is not billed.</td></tr></tbody></table>

**The choice answer**

<table><tbody><tr><td><strong>choice</strong> string<br />The name of the option with the highest probability.</td></tr><tr><td><strong>probabilities</strong> object<br />The probability the model assigned to each option. The values sum to 1.</td></tr><tr><td><strong>confidence</strong> number<br />How concentrated the probabilities are. Values near 1 mean the model is committed to one option, values near 0 mean it is split.</td></tr></tbody></table>

**The score answer**

<table><tbody><tr><td><strong>score</strong> number<br />The expected value over the levels, on a scale from 0 to the number of levels minus one. A value between two levels means the model is split between them.</td></tr><tr><td><strong>legend</strong> object<br />The level description for each index, echoed from the criteria sent in the request.</td></tr><tr><td><strong>probabilities</strong> object<br />The probability the model assigned to each level, keyed by index. The values sum to 1.</td></tr><tr><td><strong>confidence</strong> number<br />How concentrated the probabilities are across the levels.</td></tr></tbody></table>

**The noul answer**

<table><tbody><tr><td><strong>noul</strong> number<br />The probability that the answer is yes, between 0 and 1. A <code>noul</code> answer carries no separate confidence field — the probability itself is the answer.</td></tr></tbody></table>

## Example

### Request

_Request/response examples: systemone / request_

### Response

_Example: systemone / response-200 / default_

## Limits

A `choice` question takes **2 to 26 options**. This endpoint reads the decision from the logits of single-token labels `A` through `Z`, so 26 is the number of options it can score in one pass. To decide among more, split the decision into several questions or narrow the candidates before the call.

Sending more returns `422`:

```json
{
  "error": {
    "type": "validation_failed",
    "message": "question q: 27 candidates exceed the 26 single-token labels this route supports"
  }
}
```