Typed decisions from an LLM, in one forward pass
Send any text or JSON with up to 64 questions: multiple choice, rating scale or yes/no. Every answer is one of your options, with probabilities read straight from the model's next-token distribution. Nothing is generated, so there is nothing to parse.
- Price
- $0.20 per million input tokens
- Model
- Qwen3.5-35B-A3B
- Context
- 32,768 tokens
- Questions
- Up to 64 per request
One request, three decisions
A marketplace listing, sent as JSON, with three questions for moderation. The API answers them together and returns JSON your code can branch on.
curl https://seacat.dev/v1/decide \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"state": {
"title": "Phone, 256 GB, like new",
"price_usd": 180,
"seller_account_age_days": 2,
"description": "Barely used, comes with the box. Gift cards only, and text me to pay outside the app for a discount."
},
"questions": {
"section": {
"type": "category",
"text": "Which section should this listing appear in?",
"options": {
"phones": "Phones and tablets",
"computers": "Laptops and desktops",
"accessories": "Cases, chargers and cables",
"other": "Anything else"
}
},
"scam_signs": {
"type": "yes_no",
"text": "Does the listing show signs of a scam, such as asking to pay outside the platform?"
},
"risk": {
"type": "scale",
"text": "How risky is this listing for buyers?",
"options": [
"Safe to publish",
"Worth a look",
"Likely fraud"
]
}
}
}'
{
"model": "Qwen/Qwen3.5-35B-A3B",
"answers": {
"section": {
"type": "category",
"answer": "phones",
"probabilities": {
"phones": 0.97,
"computers": 0.01,
"accessories": 0.01,
"other": 0.01
},
"certainty": 0.879
},
"scam_signs": {
"type": "yes_no",
"answer": "yes",
"probabilities": {"yes": 0.94, "no": 0.06},
"certainty": 0.6726
},
"risk": {
"type": "scale",
"answer": "Likely fraud",
"probabilities": {
"Safe to publish": 0.02,
"Worth a look": 0.21,
"Likely fraud": 0.77
},
"certainty": 0.4473,
"mean": 1.75
}
},
"usage": {"input_tokens": 264, "cost_usd": 5.3e-05}
}
Illustrative values. answer is the most likely option. certainty runs from 0 when the probabilities are evenly split to 1 when one option has all of it. mean is a scale answer's expected position, counting from 0. The request is billed as 264 input tokens: the listing once, plus each question's own text.
Why not ask a chat model for JSON?
Nothing to parse
Every answer is one of the options you listed, in a fixed JSON shape. There is no free text to pattern-match, no malformed output and no retry loop.
Probabilities you can act on
Each answer carries the model's probability for every option and a certainty score. Automate the clear cases and send the uncertain ones to a person.
One forward pass
The state is read once and shared by every question. Each answer comes from the next-token probabilities of its labels (A to Z, or Yes and No). Nothing is sampled.
Independent questions
Each question sees the state and itself, never the other questions or their answers, so asking one more question can't sway the others.
You pay for input only
There are no output tokens. The state is billed once however many questions you ask, plus each question's own text.
An open-weights model
It runs Qwen3.5-35B-A3B, an open-weights model, on dedicated GPUs.
What it's for
Routing
Send each ticket, email or lead to the right queue with a category question. Anything below your certainty floor goes to a person.
Classification
Tag intent, topic, language or tone. With up to 64 questions per request, one call can label a document on every axis you track.
Moderation
Ask one yes_no question per policy and give each its own threshold: strict for anything unsafe, looser for off-topic posts.
Extraction checks
Send a document together with the fields you extracted from it, and ask whether the source supports each one before it reaches your database.
Evals and judging
Grade model outputs against a rubric with scale questions. You get the whole distribution over your levels, not a number parsed out of prose.
Agent control flow
Pick an agent's or workflow's next step with a category question. The answer is always one of your branches.
Three question types
category
Which of these fits? options is 2 to 26 names, as a list or as a map of name to description.
You get answer, probabilities and certainty.
scale
Where does it fall? options is 2 to 26 ordered levels, lowest first.
You get the same, plus mean: the expected position.
yes_no
Is this true? No options.
You get answer (yes or no), probabilities and certainty.
Each question has a type, its text and, except for yes/no, its options. Every question in a request is about the same state. The docs cover writing good questions, limits and errors.
Measured speed and accuracy
Time per request on one H100 with the model loaded, bf16 weights, one request at a time. Timed inside the GPU container, so network, the web tier and queueing are not included.
| State tokens | Questions | Billed tokens | Median | p95 |
|---|---|---|---|---|
| 200 | 5 | 465 | 39 ms | 40 ms |
| 2,000 | 10 | 2,486 | 79 ms | 80 ms |
| 8,000 | 50 | 10,254 | 227 ms | 230 ms |
Accuracy: 86.5% on 400 held-out items from five public tasks (customer-intent routing, entailment, five-level sentiment, reading comprehension, and questions about JSON records). The probability it gave its top answer averaged 3 points above its actual accuracy, so its probabilities are close to honest. Still, tune any threshold on your own data.
Pricing and limits
Pricing
per million input tokens
- No output tokens to pay for, and no subscription or minimum. Buy prepaid credits and top up when you need to.
- The state is billed once, plus each question's own text.
- The example above is 264 input tokens: $0.000053 per request, or $53 per million requests like it.
Limits
- 32,768 tokens for the state plus any one question
- 64 questions per request
- 2 to 26 options per
categoryorscalequestion - Model: Qwen/Qwen3.5-35B-A3B
- Queueing: a queued request can take a minute or two (see below)
Get started
Sign in with your email, add credits, create an API key on your dashboard, and send your first request. SeaCat is a new service in early access and runs on a small scale; the Terms of Service explain what that means.
One thing to plan for: requests are sometimes queued while GPU capacity comes online, and a queued request can take a minute or two. Once it's running, a request is fast. Give your HTTP client a timeout of at least 3 minutes.