Evaluate typed questions
POST /v1/systemone
A System One model answers independent typed questions about a shared JSON-compatible state: noul, choice, score, text, number, date, time, datetime, duration, list, estimate, and forecast. Decision models judge the state; extraction models read, compute, estimate, or forecast values from it. question_types in GET /v1/models lists the types each model answers. The result contains one typed answer per question ID; thresholds and actions stay in your code. Requests do not stream or retain state. Request and answer shapes follow the Bkper profile of Open System One (2026-11-07), a superset of the TypeSafe System One API, so TypeSafe SDKs work with base URL https://ai.bkper.app. A question type or spec parameter the selected model cannot honor returns 400 unsupported_question_type or unsupported_parameter.
Authorizations
Parameters
Header Parameters
Stable lowercase client or application identifier used for usage attribution. Invalid values are recorded as unknown.
Request Body required
Content and named questions to evaluate together.
object
Name or alias of the model to use.
Questions about the state, each under a name you choose. The response uses the same names for the answers.
object
A yes/no question or statement, answered with the probability of yes or true.
object
A question that selects one option from the choices in criteria.
object
Choice names mapped to descriptions of when each applies. A choice without a description is interpreted by its name alone.
object
A question that rates the state on an ordered rubric.
object
A question answered with text copied from the state, such as a name or an ID.
object
The answer’s value is null when p_null is above this threshold.
A question answered with a number read or computed from the state.
object
The unit of the value, such as USD or kg. It describes the value; it does not convert it.
Whether the value must be a whole number.
Number of decimal places in the value, from 0 to 6.
The answer’s value is null when p_null is above this threshold.
A question answered with a calendar date read or computed from the state. Dates written without a year are resolved against the request’s reference_date when present.
object
The answer’s value is null when p_null is above this threshold.
A question answered with a time of day read or computed from the state.
object
The answer’s value is null when p_null is above this threshold.
A question answered with a date and time read or computed from the state.
object
The answer’s value is null when p_null is above this threshold.
A question answered with a length of time, as a number in the chosen unit.
object
The unit of a duration.
Whether the value must be a whole number.
Number of decimal places in the value, from 0 to 6.
The answer’s value is null when p_null is above this threshold.
A question answered with every matching item in the state.
object
The type of each item, with the same format as the answer of that type.
Number of decimal places for number items, from 0 to 6.
A question answered with a distribution over a value the state gives evidence for but may not determine. min and max are both numbers or both dates.
object
The unit of the value, such as USD or kg. It describes the value; it does not convert it.
Whether the model spreads its distribution evenly between min and max (linear) or across orders of magnitude (log).
Whether the answer includes quantiles, the 1st to 99th percentiles. Defaults to false.
A question answered with an estimate for each of the next horizon steps of a series in the state. min, max, step, and scale apply to every step.
object
The unit of the value, such as USD or kg. It describes the value; it does not convert it.
Whether the model spreads its distribution evenly between min and max (linear) or across orders of magnitude (log).
Number of steps to forecast.
The time between steps of the series. step means one row of the series as given.
Media assets keyed by an opaque placeholder, such as a per-image UUID. Each placeholder, wherever it appears as or inside a string in state, question instructions, or criteria, is replaced with the asset. The placeholder’s position is a hint: an implementer may present assets before the state instead. Image assets require a model that accepts images.
object
An image that replaces its placeholder: its base64-encoded bytes in data_base64, with their format.
object
Identifies an image asset.
The image format, required with data_base64.
Base64-encoded image data.
The date that relative dates in the state are resolved against, as YYYY-MM-DD. A server that cannot honor it rejects the request with unsupported_parameter.
Responses
200
Answers keyed by question name.
Answers keyed by question name, with the model used and token usage.
object
Name of the model that answered. May differ from the alias in the request.
Answers keyed by the question names in the request. Each answer’s type matches its question’s type.
object
The probability of a yes answer or a true statement.
object
Probability of a yes answer or a true statement, from 0 to 1.
The selected choice, confidence, and the probability of each choice.
object
The name of the selected choice, one of the question’s criteria. Normally the choice with the highest probability.
Confidence in the selected choice, from 0 to 1.
Probability of each choice, keyed by choice name. Values sum to approximately 1.
object
A probability or confidence from 0 to 1.
An expected score with its rubric, confidence, and the probability of each level.
object
Expected score: the probability-weighted average of the levels. May fall between levels.
Confidence in the score, from 0 to 1.
Probability of each score level, using the same keys as legend. Values sum to approximately 1.
object
A probability or confidence from 0 to 1.
Text copied from the state. value is null when p_null is above the question’s null_threshold, and not null otherwise. When span is not null, the text it covers equals guess.
object
The most likely text, present even when value is null.
Where guess was read in the input: a half-open range [start, end) of character offsets, counted in Unicode code points, into state, or into the response’s state_text when present.
Probability that the state does not determine a value.
Confidence in guess, from 0 to 1.
A number that honors the question’s integer and decimals settings. value is null when p_null is above the question’s null_threshold, and not null otherwise.
object
The most likely number, present even when value is null.
Where guess was read in the input: a half-open range [start, end) of character offsets, counted in Unicode code points, into state, or into the response’s state_text when present.
Probability that the state does not determine a value.
Confidence in guess, from 0 to 1.
A calendar date as YYYY-MM-DD. value is null when p_null is above the question’s null_threshold, and not null otherwise.
object
The most likely date, present even when value is null.
Where guess was read in the input: a half-open range [start, end) of character offsets, counted in Unicode code points, into state, or into the response’s state_text when present.
Probability that the state does not determine a value.
Confidence in guess, from 0 to 1.
A time of day as HH:MM or HH:MM:SS, 24-hour, without a time zone. value is null when p_null is above the question’s null_threshold, and not null otherwise.
object
A 24-hour time of day as HH:MM or HH:MM:SS.
The most likely time, present even when value is null.
Where guess was read in the input: a half-open range [start, end) of character offsets, counted in Unicode code points, into state, or into the response’s state_text when present.
Probability that the state does not determine a value.
Confidence in guess, from 0 to 1.
An ISO 8601 date and time, YYYY-MM-DDTHH:MM[:SS[.fraction]], with a UTC offset only when the state gives one. value is null when p_null is above the question’s null_threshold, and not null otherwise.
object
An ISO 8601 date and time, YYYY-MM-DDTHH:MM[:SS[.fraction]], with an optional Z or +HH:MM offset.
The most likely date and time, present even when value is null.
Where guess was read in the input: a half-open range [start, end) of character offsets, counted in Unicode code points, into state, or into the response’s state_text when present.
Probability that the state does not determine a value.
Confidence in guess, from 0 to 1.
A length of time as a number in the question’s unit, honoring its integer and decimals settings. value is null when p_null is above the question’s null_threshold, and not null otherwise.
object
The most likely duration, present even when value is null.
The unit of value and guess, the same as the question’s.
Where guess was read in the input: a half-open range [start, end) of character offsets, counted in Unicode code points, into state, or into the response’s state_text when present.
Probability that the state does not determine a value.
Confidence in guess, from 0 to 1.
The matching items in the order they appear in the input. Never null: no match is an empty list.
object
The items, in input order. Empty when nothing matches.
One entry per item, in the same order: the item’s span, or null when the item was not read from the state text, for example when it was read from an image. Required for text items; for other items, present when they are read from the state text.
Confidence in the list, from 0 to 1.
A distribution over the estimated value. Never null.
object
The 1st to 99th percentiles, in order. Present only when the question sets quantiles to true.
Probability that the true value is below min.
Probability that the true value is above max.
One estimate per step ahead, as a steps array.
object
Exactly horizon estimates, nearest step first. Steps have no quantiles.
A predicted distribution, of the same kind as the question’s min and max (numbers or dates). value, median, p10, and p90 are within [min, max] and on the step grid; p10 <= median <= p90.
object
Probability that the true value is below min.
Probability that the true value is above max.
Token usage for the request.
object
Number of input tokens used to evaluate the request.
Number of output tokens used to answer the questions.
Whether the server shortened the state to fit the model’s context. Present whenever the server knows. A server may instead reject oversized input with an error of its own.
The text the model read, when it differs from the state as sent, for example when structured state is serialized to text, or only the portion the model read when truncated is true. Answer spans index into state_text when it is present.
400
Invalid System One request, or an unsupported question type or parameter
An error envelope.
object
An error. Two codes are standardized: unsupported_question_type, when the server does not support a question’s type, and unsupported_parameter, when it cannot honor a request field or question setting. Both use type invalid_request_error and name the rejected field in param. Other codes are implementer-defined.
401
Missing or invalid Bkper bearer token
object
object
Stable Bkper error code. New codes may be added over time.
402
Subscription payment is overdue
object
object
Stable Bkper error code. New codes may be added over time.
403
Bkper AI entitlement is unavailable
object
object
Stable Bkper error code. New codes may be added over time.
429
Monthly allowance exhausted or provider throttled
object
object
Stable Bkper error code. New codes may be added over time.
499
Client aborted the request
object
object
Stable Bkper error code. New codes may be added over time.
502
Provider or transport failure
object
object
Stable Bkper error code. New codes may be added over time.
503
System One model provider is temporarily overloaded or quota usage is unavailable
object
object
Stable Bkper error code. New codes may be added over time.