← All models

OpenAI Decisions

BetaOpenAI

OpenAI's Decisions API (gpt-6-luna) — big-lab decision model with image input.

At a glance

Unified API — one shape, switch with model

The simplest way to call OpenAI Decisions: the unified endpoint. Same request and response schema across every model, with the provider's untouched reply included as provider_data.

curl -X POST https://jevtypesafeai.com/api/v1/decisions \
  -H "Authorization: Bearer jv_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai-decisions",
    "state": "Order R-208 was charged twice. Please refund the extra payment.",
    "questions": {
      "route": { "type": "choice", "instructions": "Which team should handle this?",
                 "criteria": { "billing": "charges and refunds", "account": "login", "other": "anything else" } },
      "urgent": { "type": "noul", "instructions": "Is this urgent?" }
    }
  }'

Native API — OpenAI Decisions's own request & response

Call OpenAI Decisions directly at /api/v1/openai-decisions and get its native response back, byte-for-byte. Billing is reported in X-Decision-* response headers.

curl -X POST https://jevtypesafeai.com/api/v1/openai-decisions \
  -H "Authorization: Bearer jv_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "input": "Order R-208 was charged twice. Please refund the extra payment.",
    "questions": [
      { "name": "route", "type": "choice",
        "instructions": "Which team should handle this?",
        "choices": [{ "value": "billing" }, { "value": "account" }, { "value": "other" }] },
      { "name": "urgent", "type": "predicate", "instructions": "Is this urgent?" }
    ]
  }'
Try it in CompareGet an API keyFull API docs

One jv_live_ key and one prepaid balance work across every model. Prices are what we bill per 1M input tokens; output is free. OpenAI Decisions and its marks belong to OpenAI.

OpenAI Decisions — decision model API (OpenAI) | jevtypesafeai · Jev by TypeSafe AI