Decisions API
System One API
Call any decision model on Bud with the System One request format.
POST
/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
boxquestions, 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).