Skip to main content
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. GLiDE costs $0.15 per 1 million input tokens. Output tokens are free ($0). See Pricing for the current inference rates.

View the API contract

Inspect the exhaustive request and response schema for POST /v1/systemone.

GLiDE cookbooks

Tested end-to-end requests for ticket triage, agent action gates, and prompt injection screening.

Set up your API key

  1. Create a Fastino account
  2. Get your API key from Settings
Set your key as an environment variable so the examples below work as-is:

Choose a question type

Every question is single-label and returns probabilities. Choose the primitive from the answer shape your code needs: There is no multi-label primitive. Ask multiple independently named questions in one request when you need several judgments about the same state.

Request

string
required
Use fastino/GLiDE. Omitting it returns 422 'model' must be provided. The response echoes the engine name as glide.
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.
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. See Noul, Choice, and Score for each type’s full request and response shape.

State shapes

state is the material every question is evaluated against - think of it as what you’d hand a panel of experts before asking them to make a judgment. Use an object when the decision depends on comparing several named parts (a ticket plus the policy it’s evaluated against, for example) - it keeps each part labeled and its relationships clear. A plain string is enough when the case is a single self-contained passage. All questions in a request see the same state and are evaluated independently against it.

Complete request

Response

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.

Combining multiple questions

Ask multiple questions of different types against the same state in a single call. All questions are evaluated together in one round trip.
Response:

Limits and unsupported shapes

  • Each rendered question prompt (state plus that question) must fit within 40,000 tokens.
  • Choice requires 2 to 255 options; one option cannot represent a decision or meaningful confidence margin. Score accepts at most 255 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 confidence and uncertainty for the confidence formulas and confidence-gated routing.

Migrating from TypeSafe

TypeSafe’s Jev and Fastino’s GLiDE use the same System One structure of state, named questions, and matching answers. Most requests transfer cleanly, but the integration is not a drop-in replacement. Use this checklist to migrate safely:
1

Keep the System One request structure

Preserve non-empty state, question keys, and primitive types. GLiDE requires every instructions value to be a non-empty string, so convert omitted, null, object, or array instructions into clear text. Keep Choice criteria as an object. Noul criteria are optional, but their true and false values must be strings. Prefer an ordered array for Score criteria. Send only the documented request fields your integration needs. Unsupported top-level fields return 422, so do not copy arbitrary TypeSafe client options into the JSON body.
2

Change the endpoint, credential, and model

Point the request at Fastino, read FASTINO_API_KEY, send it with X-API-Key, and set model to fastino/GLiDE. Fastino also accepts the Bearer header if retaining that style makes a direct HTTP migration simpler. Expect model: "glide" in the response.
3

Update Score response handling

TypeSafe’s score is a probability-weighted float. Its GLiDE equivalent is expected_level. GLiDE’s score is instead the integer index of the most probable level. GLiDE returns Score legend descriptions as strings, so update consumers that expect structured legend values. GLiDE also accepts criteria objects with numeric string keys, such as {"1": "low", "3": "medium", "5": "high"}. The keys are sorted and discarded, and the response is reindexed from 0 through N-1. Use an ordered array when the original numeric values must not be mistaken for returned level indexes.
4

Check level keys and retry behavior

GLiDE returns Score probabilities and legend with string keys such as "0" and "1". TypeSafe’s raw HTTP response does the same, but its Python SDK may expose integer keys. Convert keys only if the application requires integer-keyed maps. Replace TypeSafe’s 529 retry handling with Fastino’s 425 and 503 handling, and keep bounded backoff for 429. Honor Retry-After when present and apply the same retry budget to transport failures.
5

Revalidate decision thresholds

Keep existing business actions intact during the port, then test GLiDE on representative cases before deployment. Do not assume thresholds calibrated for Jev transfer unchanged to a different model.
Do not map TypeSafe’s floating-point score to GLiDE’s score. Read answers.<key>.expected_level when existing code expects a weighted score. Read answers.<key>.score only when the code needs the single winning level index.

Replace TypeSafe SDK usage

If the project uses a TypeSafe SDK:
  1. Find typesafe-sdk, @typesafe-ai/sdk, TypeSafeClient, AsyncTypeSafeClient, and TypeSafe question constructors in manifests, imports, application code, and tests.
  2. Replace SDK constructors and typed response access with the project’s HTTP client and decoded JSON.
  3. Remove TypeSafe packages and imports only after no references remain.
The endpoint, validation, retry, and Score rules above still apply.

Errors

A first request to a cold model may return 425 model_warming while it warms up; retry after about 60 seconds. 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

GLiDE overview

Understand GLiDE, choose a primitive, and review model-specific guidance.

Noul

Integrate a yes/no probability.

Choice

Route to one named option.

Score

Evaluate an ordered rubric.