Now available: GPT-6 Luna Decisions

Try the model

LIQUID / OPENROUTER

Liquid d1-ultra Latest

A rolling OpenRouter alias for Liquid AI’s largest decision-model family. As of October 29, 2026 it resolves to d1-ultra and returns typed decisions with probabilities for text, JSON and images.

~liquid/d1-ultra-latest
TextJSONImages

New accounts get 100 credits. The playground and API share one balance.

Context window

32,768

tokens · provider-listed maximum

OpenRouter input price

$0.042 / 1M

per million input tokens

OpenRouter output price

$0 / 1M

output tokens are free upstream

This site's input rate

600

credits per million input tokens · minimum 1 per successful request

JEV / SYSTEM ONE

Uses the Jev decision playground

Send model: "~liquid/d1-ultra-latest", state and Choice, Score or Noul questions to /v1/systemone. Run the ticket example, attach images or compare rules using the shared credit balance. Select liquid/d1-ultra when you want that model rather than the rolling family alias.

SPAN / NOUL

How it differs from Span

Span-01 and Span-01 Lite accept only Noul behavior questions and require text or a specific input/output conversation object. General decision models also accept Choice and Score questions with text, JSON objects or arrays as state. Span-02 follows this broader decision contract and supports images in the shared decision playground.

Three structured answer types

Choice returns a named option and its probability distribution. Score returns a value on an ordered scale with probabilities. Noul returns the probability of a yes/no condition. Multiple questions share the same state.

choicescorenoul

Current target d1-ultra: 32,768-token provider context. This service: 8 questions, 2–255 Choice options, 2–10 Score levels and 32 KiB text plus questions. Up to 4 PNG, JPEG or WebP images, 4 MiB and 16 MP each, 8 MiB total and 13 MiB per complete request.

Keep the ~ prefix in the model ID. The current target is d1-ultra; OpenRouter may move the alias to a newer model. The upstream price, context and supported inputs follow that target and should be checked before relying on a fixed configuration.

Input and output credits

Current target’s OpenRouter input price: $0.042/M. This service currently charges 600 credits ($0.06) per million actual input tokens, including questions and processed image tokens. Output is free. Each successful request rounds up with a 1-credit minimum ($0.0001); failures release the reservation. Recheck this page when the alias target changes.

max(1, ceil(input_tokens × 600 / 1,000,000))

A successful request with 1,000 input tokens costs 1 credit; 5,000 input tokens cost 3 credits. Output tokens add no charge. Failed calls release the credit reservation.

Checked October 29, 2026: 10 live alias requests passed, covering text/JSON, all three answer types, 8 questions, 255 choices, 10 score levels, a tail marker, red/blue image checks and four images. Routing resolved to d1-ultra; costs matched $0.042/M and stayed within reserved budgets. These checks establish compatibility, not accuracy.

Try the current d1-ultra model

The Jev workbench below starts with this model selected. Try a recipe, edit the state and questions, or export API code. This page stores its browser draft separately from other model pages and the main playground.

What do you want to decide?

Choose a task to load its input and rules. Loading examples uses no credits.

Liquid d1-ultra Latest ↗Span · behavior evaluation ↗

Rolling alias: ~liquid/d1-ultra-latest currently routes to d1-ultra (checked October 29, 2026). Current context: 32,768 tokens; images supported. Current rate: 600 credits/M input tokens. Price and capabilities can change with the target.

Text or JSON shared by all questions; attach images below on vision models.

Images 0/4

Image input

Embedded images stay in this page until you leave or refresh. Saved configurations and history keep image metadata; API URL references are retained and may expire.

Advanced question settings

Questions 3/8

Which team should handle this ticket? Use other when no option fits.Choice

Options

Rate the urgency using only the supplied ticket.Score

Levels · lowest to highest

0
1
2
Does this ticket require a human to review a billing or account action?Noul · yes / no
Maximum credit budget: 2 credits

We reserve this budget before the model runs, then charge actual usage and return the difference. Failed calls are refunded.

New account? Receive 100 credits once. Short requests typically use 1 credit; longer inputs can use more.

100 welcome credits · one balance for web & API

Draft saved in this browser · Your draft will be restored after sign-in.

Your current configuration stays in this browser tab for the setup flow.

ILLUSTRATIVE EXAMPLE · NO CREDITS USED

“I was charged twice this morning. Please refund the duplicate payment today.”

One input → structured decisions

Choice

Billing

Route to the billing queue

Yes / no

96%

Probability of an urgent request

Score

2.8 / 3

Urgency on a 0–3 scale

Static illustration of the output format. Values are not a live model response or a measure of accuracy.

Web runs and saved configurations are private to your account. API history stores usage only. Embedded image pixels are omitted from drafts, configurations and history; metadata and missing-image counts remain. Add the images again before replaying. API URL references may expire. API setup exports local-file code without storing pixels.Usage ↗

Your draft will be restored after sign-in.

Use the same decision API

Send model, state, and questions to Decisions API's /v1/systemone endpoint with an API key created here. Set model to ~liquid/d1-ultra-latest; answers are in data.result.answers and token usage is in data.result.usage.

// Server-side JavaScript (Node 20+ or Bun). Set DECISIONS_API_KEY.
const response = await fetch("https://decisions-api.dev/v1/systemone", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.DECISIONS_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "model": "~liquid/d1-ultra-latest",
  "state": "I was charged twice for order A-4471. My account is blocked and I need access today. Please refund the duplicate payment.",
  "questions": {
    "route": {
      "type": "choice",
      "instructions": "Which team should handle this ticket? Use other when no option fits.",
      "criteria": {
        "billing": "Payments, charges and refunds",
        "technical": "Bugs and product errors",
        "account": "Login and account access",
        "other": "None of these teams"
      }
    },
    "urgency": {
      "type": "score",
      "instructions": "Rate the urgency using only the supplied ticket.",
      "criteria": [
        "Low: routine request",
        "Medium: timely help needed",
        "High: blocked or time-critical"
      ]
    },
    "needs_review": {
      "type": "noul",
      "instructions": "Does this ticket require a human to review a billing or account action?",
      "criteria": {
        "true": "A refund, payment correction or blocked account needs review.",
        "false": "An informational request that needs no account or payment change."
      }
    }
  }
}),
});
const body = await response.json();
if (!response.ok || body.code !== 0) throw new Error(body.message);
console.log(body.data.result.answers);
console.log(body.data.creditsUsed);