LiquidAI: d1 vs Microsoft: Microsoft-Decision-1
A side-by-side comparison of LiquidAI: d1 ($0.07 / 1M tokens) and Microsoft: Microsoft-Decision-1 ($0.15 / 1M tokens) using current USD prices and capabilities from the api14 catalog. Both run through the same OpenAI-compatible API.
Specifications
| LiquidAI: d1 | Microsoft: Microsoft-Decision-1 | |
|---|---|---|
| Provider | LiquidAI | Microsoft |
| Input | $0.07 / 1M tokens | $0.15 / 1M tokens |
| Cache read | $0.07 / 1M tokens | - |
| Context window | 65,536 | 32,768 |
| Max output | 58,982 | 29,491 |
| Input | text, image | text |
| Output | decisions | decisions |
| Tool calling | ||
| Structured output | ||
| Reasoning control | ||
| Added | Oct 1, 2026 | Oct 9, 2026 |
Key differences
- LiquidAI: d1 is 52% cheaper on input tokens.
- LiquidAI: d1 reads 2.0× more context (65,536 tokens).
- A request with 1,000 input and 500 output tokens costs $0.000070 with LiquidAI: d1 and $0.000147 with Microsoft: Microsoft-Decision-1.
In depth
LiquidAI: d1 is a decisions model from LiquidAI, and Microsoft: Microsoft-Decision-1 is a decisions model from Microsoft. Both belong to the same category, so neither is a general chat or generation model in the usual sense; you call them to get a decision back rather than a paragraph of prose. They were released about a week apart, with d1 arriving first and Microsoft-Decision-1 following shortly after. If you are choosing between them, the differences that matter are context size, what you can feed in, and price.
The clearest split is context and input. d1 accepts up to 65,536 tokens, while Microsoft-Decision-1 accepts 32,768, so d1 gives you roughly twice the room for long documents, transcripts or accumulated history in a single call. d1 also accepts images as well as text, whereas Microsoft-Decision-1 is text only. Both return decisions as their output modality, and neither lists any supported parameters, so you should not expect to tune sampling or other knobs on either one. On price, d1 is the cheaper of the two on input; the comparison for output cost is not meaningfully different between them, so treat them as about the same there.
For practical work, reach for d1 when your decision depends on a large body of text, when you want to keep a long conversation or document set in one request, or when the input includes a screenshot, scan, chart or other image that the decision should take into account. Reach for Microsoft-Decision-1 when your inputs are plain text and comfortably fit inside 32,768 tokens, and when you would rather stay within the Microsoft family, for example to keep model provenance consistent across a stack that already uses Microsoft services. If your prompts are short and text only, the larger context of d1 buys you nothing, and Microsoft-Decision-1 is a perfectly reasonable default.
Calling either model through api14 works the same way, because the API is OpenAI-compatible. You point your existing client at the api14 base URL, send your request to the chat completions endpoint, and set the model field to the id you want. To use LiquidAI: d1, set the model to liquid/d1. To use Microsoft: Microsoft-Decision-1, set it to microsoft/microsoft-decision-1. Everything else in the request body stays as it is, so switching between the two is a one line change and you can compare them on your own traffic without rewriting integration code.
There are still cases where Microsoft-Decision-1 is the better pick even though d1 is cheaper on input and has the larger window. If your pipeline is text only, your payloads are small, and you want the model that came out of the Microsoft line, the extra context and image support of d1 are simply unused capacity. In that situation the two are close enough on output cost that the deciding factor is which provider you prefer to depend on, not which model is technically larger.
Switch with one string
Both models use the same endpoint and request shape. Change the model value from "liquid/d1" to "microsoft/microsoft-decision-1" and prompts, streaming and tools keep working.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.post("/decisions", { body: {
"model": "microsoft/microsoft-decision-1",
"state": "Customer: I was charged twice for my order and want my money back.",
"questions": {
"team": {
"type": "choice",
"instructions": "Which team should handle this message?",
"criteria": {
"billing": "Payments, refunds, invoices",
"support": "Product questions and bugs",
"sales": "Pricing and new purchases"
}
},
"urgent": {
"type": "noul",
"instructions": "Does this need a reply today?",
"criteria": {
"true": "Money, outage or legal risk",
"false": "Can wait"
}
}
}
} });
console.log(result.answers);
More comparisons
- LiquidAI: d1 Latest vs LiquidAI: d1-ultra Latest
- LiquidAI: d1 Latest vs Baseten: Joey 1
- LiquidAI: d1 Latest vs LiquidAI: d1.1
- LiquidAI: d1 Latest vs Morph: Reflex
- LiquidAI: d1-ultra Latest vs Baseten: Joey 1
- LiquidAI: d1-ultra Latest vs LiquidAI: d1.1
- LiquidAI: d1-ultra Latest vs Morph: Reflex
- Baseten: Joey 1 vs LiquidAI: d1.1