Skip to main content
POST
System One is the decision format TypeSafe introduced and other vendors and engines speak: questions are keyed by name, and answers come back under the same keys. Bud accepts it on /v1/systemone for every decision model, including OpenAI’s gpt-6-luna: the request is translated to the Decisions API and back. Authentication, rate and usage limits, guardrails, pricing and tracing are the same on both routes, and so are the limits and errors.

Headers

Body

Other top-level fields are ignored.

State

Questions

Any other field inside a question is refused with 400 unknown_parameter.

Response

confidence is the provider’s own figure. Probabilities are each model’s own estimates and are not comparable across models or providers.

Differences from calling a vendor directly

  • Bud’s error format. Errors use the OpenAI-style envelope of the Decisions API ({"error": {"message", "type", "param", "code"}}), not the vendor’s own. A provider’s validation error keeps its status and message.
  • Choice and level descriptions reach the model as part of the option text.
  • No images and no box questions, on every provider.
  • Bud’s limits apply first: at most 400 questions, 255 options and 10 levels, then the provider’s own limits. A request over a limit is refused with 400, not split.
  • Vendor-specific headers are not forwarded (for example TypeSafe’s long-context or image headers).
The provider notes on the Decisions API page apply here too: TypeSafe output tokens are reported but not charged, Embedding Studio is priced per request and reports no token usage, and its abstention is not returned.