Skip to main content
OpenAI Decisions API
Evaluate shared evidence with named questions and receive typed answers through MixRoute’s OpenAI-compatible Decisions endpoint. Use gpt-6-luna; this is a separate protocol from Jev System One.

Access

POST https://api.mixroute.ai/v1/decisions Send Authorization: Bearer $MIXROUTE_API_KEY and Content-Type: application/json. Keep the key server-side. Model and channel access depend on your account; a model appearing in the catalog does not guarantee every endpoint is available.
Use input, not state, and send questions as an array with optional names, not an object keyed by question IDs. Use predicate, not noul; use choices for categories and levels for scores, not Jev’s criteria. The response answers is also an array. For the separate Jev protocol, see System One.

Request parameters

Question fields

Answer types

Any question may return type=refusal instead of its requested type; other questions may still have answers. Match by name or question order, check type before reading fields, and handle refusal explicitly. Confidence and probabilities are not correctness guarantees.

Request examples

Set MIXROUTE_API_KEY before calling. The examples submit once with no automatic retries. A timeout does not prove that inference was not executed.

Response example

The response is a synchronous JSON object, not a Chat Completions choices array or a task to poll. Probabilities and token usage vary with the request.

Structured and image input

In a user message, content can include input_text (text), input_image (image_url), and input_json (data). JSON data must be an object or an array of objects; keys inside data are ordinary evidence, not instructions to fetch images or create messages. Input JSON is limited to 32 container levels, 10,000 values and 256 KiB of compact UTF-8 JSON.
Images use a public HTTP(S) URL or a base64 data URL, not file_id. Optional detail values are auto, low, high or original. Developer/system messages accept text; assistant messages contain output text or refusals. Match tool outputs to calls using call_id. Files, audio and item references are not accepted by this protocol. These are protocol shapes; availability of advanced inputs depends on the MixRoute route. Replace the example image URL with a publicly accessible product image or a base64 data URL.

Optional prompt caching

Cacheable shared input needs at least 1,024 tokens. Questions are outside the reusable input prefix. An implicit breakpoint is used by default; explicit boundaries use prompt_cache_breakpoint: {"mode": "explicit"} on text/image parts in shared input. With prompt_cache_options.mode=explicit and no boundaries, caching is disabled. Question instructions do not accept cache breakpoints. Do not assume the upstream cache discount or price is your MixRoute rate.

Errors and billing

Check HTTP status first. Gateway errors can contain error.message, error.type, error.code and error.param; param can be empty. Keep x-oneapi-request-id for support, without logging your API key.
Use usage and the current Model Marketplace to understand billing. Responses and Chat Completions rates must not be assumed to apply to Decisions. Account multipliers and route pricing determine actual charges.