Skip to main content
Core.Today
|
Billing note Not a chat model and priced differently from gpt-6-luna on chat: $0.10/M input, no output, cached or cache-write charges (long-context multiplier applies). Call POST /llm/openai/v1/decisions with model gpt-6-luna-decisions or gpt-6-luna - both bill this row. Public beta at OpenAI. Images only as inline base64 data URLs. Try it on the console's Decisions page.
OpenAIFastHigh

GPT-6 Luna Decisions

OpenAI's Decisions API on GPT-6 Luna, through the gateway. Not chat: send an input (text, or user messages with text and base64 images) plus typed questions - predicate (probability a condition is true), choice (one of your options with per-option probabilities) or score (a position on your ordered levels) - and get one typed answer per question with confidence. Roughly 10x faster than a Responses call and billed on input tokens only.

186credits
per 1M input tokens · no output-token charge
Three question types: predicate (0-1 probability), choice (your values + probabilities + confidence), score (weighted position on ordered levels)
Text and image input (input_text / input_image parts, base64 data URLs only)
Many questions per request over one input - independent answers, one input-token charge
Input-token billing only; output, cached and cache-write tokens are free
A question can come back as a refusal; the other answers are still returned
OpenAI SDK support: client.decisions.create(...) with base_url https://api.core.today/llm/openai/v1

Run it right now

Test this model instantly in the Console Playground — no code required

Sign in to try

Use with AI Assistant

Copy usage instructions for Claude, ChatGPT, or other AI

Model Specifications

Context Window
1.1M
tokens
Max Output
0
tokens
Training Cutoff
2026-05-18
Compatible SDK
OpenAI, HTTP

Capabilities

Vision
Function Calling
Streaming
JSON Mode
System Prompt

Token Pricing (per 1M tokens)

Token TypeCreditsUSD Equivalent
Input Tokens186$0.12
Output TokensNo charge — billed on input tokens only

* 1,500 credits ≈ $1 (actual charges may vary based on usage)

Quick Start

curl -X POST "https://api.core.today/llm/openai/v1/decisions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer cdt_your_api_key" \
  -d '{
  "model": "gpt-6-luna-decisions",
  "input": "I was charged twice for my order and support has not replied for 3 days.",
  "questions": [
    {
      "type": "predicate",
      "name": "is_urgent",
      "instructions": "Does this message convey urgency?"
    },
    {
      "type": "choice",
      "name": "department",
      "instructions": "Which department should handle this complaint?",
      "choices": [
        {
          "value": "billing",
          "description": "Payments, invoices, and refunds."
        },
        {
          "value": "technical",
          "description": "Problems using the product."
        },
        {
          "value": "other",
          "description": "Requests outside these categories."
        }
      ]
    },
    {
      "type": "score",
      "name": "severity",
      "instructions": "How severe is this issue for the customer?",
      "levels": [
        {
          "label": "Minor",
          "description": "Inconvenience only."
        },
        {
          "label": "Significant",
          "description": "Money or access affected."
        },
        {
          "label": "Critical",
          "description": "Blocked with no workaround."
        }
      ]
    }
  ]
}'

Parameters

ParameterTypeRequiredDefaultDescription
modelstringYesgpt-6-luna-decisionsgpt-6-luna-decisions (catalog id) or gpt-6-luna - the gateway bills the Decisions row either way and sends gpt-6-luna upstream.
inputstring | message[]Yes-The evidence shared by every question: a text string, or user messages whose content holds input_text and input_image parts (images as data:image/...;base64 URLs).
questionsarrayYes-Array of questions, each with a unique name, a type and instructions. choice adds choices [{value, description}], score adds ordered levels [{label, description}] from lowest to highest. Answers come back under the same names.

Examples

Route a complaint and rate its severity

A predicate, a choice and a score in one call

curl -X POST "https://api.core.today/llm/openai/v1/decisions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer cdt_your_api_key" \
  -d '{
  "model": "gpt-6-luna-decisions",
  "input": "I was charged twice for my order and support has not replied for 3 days.",
  "questions": [
    {
      "type": "predicate",
      "name": "is_urgent",
      "instructions": "Does this message convey urgency?"
    },
    {
      "type": "choice",
      "name": "department",
      "instructions": "Which department should handle this complaint?",
      "choices": [
        {
          "value": "billing",
          "description": "Payments, invoices, and refunds."
        },
        {
          "value": "technical",
          "description": "Problems using the product."
        },
        {
          "value": "other",
          "description": "Requests outside these categories."
        }
      ]
    },
    {
      "type": "score",
      "name": "severity",
      "instructions": "How severe is this issue for the customer?",
      "levels": [
        {
          "label": "Minor",
          "description": "Inconvenience only."
        },
        {
          "label": "Significant",
          "description": "Money or access affected."
        },
        {
          "label": "Critical",
          "description": "Blocked with no workaround."
        }
      ]
    }
  ]
}'

Check a product photo for damage

Image input as a base64 data URL plus a predicate question

curl -X POST "https://api.core.today/llm/openai/v1/decisions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer cdt_your_api_key" \
  -d '{
  "model": "gpt-6-luna-decisions",
  "input": [
    {
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Inspect the product in this photo."
        },
        {
          "type": "input_image",
          "image_url": "data:image/png;base64,<BASE64>"
        }
      ]
    }
  ],
  "questions": [
    {
      "type": "predicate",
      "name": "visible_damage",
      "instructions": "Does the product have visible damage, such as a crack, tear, or dent? Ignore shadows and damage to the packaging."
    }
  ]
}'

Tips & Best Practices

1Read answers by type: predicate.probability (0-1), choice.choice + probabilities[] + confidence, score.score (can fall between levels) + probabilities[] + confidence; handle type refusal
2Give every question a unique name and put the full question in instructions; add an 'other' choice when your list may not cover every input
3Put every question about the same input in one request - answers are independent and the input is charged once
4Hosted image URLs and file ids are not accepted - inline the image as a base64 data URL
5stream is not supported on this endpoint through the gateway; the chat gpt-6-luna row is unaffected and keeps its own pricing

Use Cases

Content classification and request routing with calibrated probabilities
Visual checks on product photos (damage, category) with predicate questions
Severity, priority and quality scoring against your own rubric
Guardrails and relevance filtering before a larger model runs

Model Info

ProviderOpenAI
Versiongpt-6-luna
CategoryLLM
Price0.19 credits

API Endpoint

POST /llm/openai/v1/decisions
Try in ConsoleBack to Docs