> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fastino.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Use https://docs.fastino.ai/openapi.json as the source of truth for customer-facing routes. For GLiDE decision inference, call POST https://api.fastino.ai/v1/systemone with model fastino/glide. Do not infer undocumented routes. Read API keys from FASTINO_API_KEY and never embed credentials in code, logs, or reports.

# GLiDE inference with /v1/systemone

> Authenticate, choose a Noul, Choice, or Score question, call POST /v1/systemone, and act on GLiDE probabilities and confidence.

```text theme={null}
POST https://api.fastino.ai/v1/systemone
```

This is the inference endpoint for **GLiDE**. Send a non-empty `state` and one or more named,
typed `questions`; read structured decisions from `answers`. GLiDE does not use
`/v1/chat/completions`, `messages`, or a GLiNER `schema`.

## Authenticate

Create an API key in [Fastino Settings](https://agent.fastino.ai/api-keys), then set:

```bash theme={null}
export FASTINO_API_KEY="fast_sk_..."
```

Send it with every request:

```http theme={null}
X-API-Key: $FASTINO_API_KEY
Content-Type: application/json
```

`Authorization: Bearer $FASTINO_API_KEY` is also accepted. Use one style consistently.

## Choose a question type

Every question is single-label and returns probabilities. Choose the primitive from the
answer shape your code needs:

| Primitive | Use when | `criteria` shape | Primary result |
| - | - | - | - |
| [Noul](/concepts/glide-noul) | The answer is yes or no | Optional `{"true": "...", "false": "..."}`; defaults to Yes/No | `noul`, the probability of true |
| [Choice](/concepts/glide-choice) | Exactly one unordered option should win | Object mapping option keys to descriptions | `choice` plus `probabilities` |
| [Score](/concepts/glide-score) | The answer belongs on an ordered scale | Ordered array of level descriptions | `score`, `expected_level`, and `probabilities` |

There is no multi-label primitive. Ask multiple independently named questions in one request
when you need several judgments about the same state.

## Request

<ParamField body="model" type="string" required>
  Use `fastino/glide`. The response echoes the engine name as `glide`.
</ParamField>

<ParamField body="state" type="string | object | array" required>
  The non-empty situation to evaluate. Use a string for one passage, an object for labeled
  fields, or an array for an ordered sequence of messages or records.
</ParamField>

<ParamField body="questions" type="object" required>
  A non-empty object keyed by names you choose. Each value must contain `type` and
  `instructions`; Choice and Score also require `criteria`. The same keys appear under
  `answers` in the response.
</ParamField>

### Complete request

```bash theme={null}
curl --max-time 300 -s https://api.fastino.ai/v1/systemone \
  -H "X-API-Key: $FASTINO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "fastino/glide",
    "state": "Refund request: the receipt is attached, the purchase was 10 days ago, and refunds are allowed within 30 days.",
    "questions": {
      "refund_allowed": {
        "type": "noul",
        "instructions": "Does this request qualify for a refund?",
        "criteria": { "true": "Qualifies", "false": "Does not qualify" }
      }
    }
  }'
```

## Response

```json theme={null}
{
  "model": "glide",
  "answers": {
    "refund_allowed": {
      "type": "noul",
      "noul": 0.99767683794902,
      "confidence": 0.9953536758980399
    }
  },
  "usage": { "input_tokens": 89, "output_tokens": 1 }
}
```

`answers` uses the question keys from your request. For this Noul:

* `noul` is the probability that the `true` criterion holds. It is not a boolean.
* `confidence` is certainty about either outcome: `|2 × noul − 1|`.
* Tune action thresholds on representative data. Do not assume `0.5` is the right business
  threshold.

Choice and Score return different fields. See their primitive pages for exact response shapes
and integration examples.

## Limits and unsupported shapes

* Each rendered question prompt (`state` plus that question) must fit within **40,000
  tokens**.
* Choice and Score accept at most **255 options or levels**.
* `usage.input_tokens` sums the internal passes for all questions, so it can exceed 40,000
  even though every individual rendered prompt fits.
* One request evaluates one shared `state`; put multiple questions under `questions`.
* `/v1/systemone` does not stream and does not accept a batch of independent states.
* GLiDE does not currently support fine-tuned deployment IDs.

See [GLiDE Reference](/concepts/decision-models) for state-shape guidance, confidence
formulas, and a mixed Choice/Score request.

## Errors

| Status | Likely cause | Action |
| - | - | - |
| `400` | Prompt exceeds the context window or another inference input is invalid | Shorten the state or correct the question |
| `401` | Missing, malformed, or invalid API key | Export a valid `fast_sk_...` key |
| `402` | Insufficient credits, funding required, or an owner-set daily/monthly spend limit | Add credits or adjust the spend limit |
| `403` | Payment method, card verification, credit ceiling, or account policy denial | Resolve the billing or account requirement |
| `404` | Unknown model or a model that only supports chat completions | Use `fastino/glide` |
| `422` | A required field is missing, a value has the wrong shape, or an extra field was sent | Read and correct the field-level validation details |
| `425` | Deployment is warming | Retry after the indicated delay |
| `429` | Rate or capacity limit | Respect `Retry-After` and retry with backoff |
| `503` | Temporary provider or serving failure | Retry before treating it as terminal |

Use a read timeout of at least 300 seconds and bounded backoff for `425`, `429`, and `503`.
Do not retry `401`, `402`, `403`, `404`, or `422` without correcting the underlying problem.

## Continue learning

<CardGroup cols={2}>
  <Card title="GLiDE Reference" icon="book-open" href="/concepts/decision-models">
    Understand state shapes, limits, confidence, and combining multiple questions.
  </Card>

  <Card title="Noul" icon="toggle-on" href="/concepts/glide-noul">
    Integrate a yes/no probability.
  </Card>

  <Card title="Choice" icon="list" href="/concepts/glide-choice">
    Route to one named option.
  </Card>

  <Card title="Score" icon="gauge" href="/concepts/glide-score">
    Evaluate an ordered rubric.
  </Card>
</CardGroup>
