Decision model
Liquid d1
Turn context into typed decisions.
Liquid d1 turns shared input into typed results your code can use.
One input. Typed decisions.
Illustrative values · No API call
Shared input
“My subscription was charged twice this month. I can’t update my card, and this is my second message. Please help.”
Pass text or JSON as shared state. Ask several questions in one request; each is evaluated independently against that same input.
Which team should handle this?
Billinghighest-probability option
- Billing
- 82%
- Technical
- 13%
- Account
- 5%
Define a set of categories. The model returns the most likely option and the probability of every option, adding up to 100%.
Read the whole distribution.
Use the returned probabilities to choose an action or send ambiguous results for human review. Probability is not a guarantee of correctness.
Clear preference
- Billing
- 90%
- Technical
- 7%
- Account
- 3%
Close call
- Billing
- 36%
- Technical
- 34%
- Account
- 30%
Illustrative Choice distributions.
Catalog pricing
- Input / 1M tokens
- $0.022
- Output / 1M tokens
- Free
- Request minimum
- $0
Finalized provider inference cost plus 10%. Verified zero-cost requests remain free. Credit holds are temporary; settled charges appear in account activity.
Decision endpoints
- OpenAI decision format
- POST
- Ordered typed questions and answers, including native refusals.
- Primary HTTP API
- POST
- Boolean probabilities, selected choices and rubric scores. Choice and score answers include their full probability distributions.
Building with Liquid d1
- Text and JSON in, typed answers out
- State can be a string, object or array. This model accepts text input, without audio, images or streaming.
- One state, independent questions
- Batch up to 64 questions. If a question needs a previous answer, make a separate call. Extra questions still use input tokens.
- Your categories and scale
- Up to 64 options per choice; 2–10 ordered levels per score. Describe each option clearly, and add an “other” option when categories are not exhaustive.
- 32 KiB normalized request limit
- The upstream JSON must fit within 32,768 UTF-8 bytes, including routing fields MiniRouter adds.
HTTP example
curl --fail-with-body https://api.minirouter.sh/v1/evaluate \
-H "Authorization: Bearer $MINIROUTER_API_KEY" \
-H 'Content-Type: application/json' \
--data '{
"model": "liquid/d1",
"state": "The subscription was charged twice.",
"questions": {
"billing": {
"type": "boolean",
"instructions": "Does this describe a billing problem?"
}
}
}'