# Mammoth 1 (free) Model id on AIHubMix: `mammoth-1-free` Create an API key: https://console.aihubmix.com/?utm_source=llms-agent&utm_medium=model-llms > Mammoth 1 is a 27B decision model developed by Base Labs, Baseten's research team, and built on Qwen3.5-27B. Featuring a context length of 16,384 tokens, the model is designed to analyze a given state in text or JSON format and answer typed questions such as yes/no, multiple choice, or ordinal queries. It offers a robust and specialized solution for structured decision-making tasks. - Developer: Baseten - Pricing: free tier / see model page **This is a decision model, not a chat model.** It has no `/v1/chat/completions` endpoint — sending `messages` to it returns 404. You send a `state` (the text to judge) plus a map of typed `questions`, and get typed answers back. ## Endpoints (base URL: https://aihubmix.com) - `POST /v1/systemone` — structured decision (`Authorization: Bearer $AIHUBMIX_API_KEY`) ## Request `{model, state, questions}`. Each entry in `questions` is named by you and has a `type` of `noul`, `choice` or `score`, an `instructions` string, and — for the latter two — a `criteria` whose **shape differs by type**: - `noul` — no `criteria`. Returns the probability that `instructions` holds. - `choice` — `criteria` is an **object**: option name → what that option means. Returns one option name. - `score` — `criteria` is an **array**: the ordered levels, lowest first. Returns the level index. Passing an array where an object is expected (or vice versa) is an HTTP 400, not a coercion — the two shapes are not interchangeable. ## Example ```bash # Structured decision: POST /v1/systemone — every question is evaluated in parallel and in # isolation against the same state, and comes back typed. No text generation, nothing to parse. # The answers{} map is keyed by your own question names; each answer holds its value under a # key named after its type: # noul -> { type, noul } probability of "yes", 0..1 # choice -> { type, choice, probabilities, confidence } choice is one of your criteria keys # score -> { type, score, legend, probabilities, confidence } legend maps level index -> description # usage carries input_tokens / output_tokens. curl https://aihubmix.com/v1/systemone \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $AIHUBMIX_API_KEY" \ -d '{ "model": "mammoth-1-free", "state": "Hi, I have been trying to connect my Stripe account for 3 days and it keeps failing. I am losing sales. Please help ASAP.", "questions": { "department": { "type": "choice", "instructions": "Which team should handle this", "criteria": { "billing": "Payment or subscription issues", "technical": "Bugs or integration problems", "sales": "Pricing or account questions" } }, "frustration": { "type": "score", "instructions": "How frustrated the customer appears", "criteria": [ "Calm, just stating facts", "Frustrated but civil", "Very angry, strong language" ] }, "is_urgent": { "type": "noul", "instructions": "The message conveys urgency or time-sensitivity" } } }' ``` ## Response Always a single JSON object — no streaming, no text to parse. `answers` is keyed by **your own** question names, and each answer carries its value under a key named after its type: ```json { "model": "jev-1.13.0", "answers": { "is_urgent": {"type":"noul","noul":0.99}, "department": {"type":"choice","choice":"billing","confidence":0.53,"probabilities":{"billing":0.69,"sales":0.0,"technical":0.31}}, "frustration": {"type":"score","score":1.0,"confidence":1.0,"legend":{"0":"Calm, just stating facts","1":"Frustrated but civil","2":"Very angry, strong language"},"probabilities":{"0":0.0,"1":1.0,"2":0.0}} }, "usage": {"input_tokens":424,"output_tokens":73} } ``` - `noul` — probability in `0..1` that the statement holds. No threshold is baked in; pick your own. - `choice` — one of **your** `criteria` keys, plus the full probability distribution over them. - `score` — the level **index**, `0`-based, counted from your `criteria` array (serialized as a number, so `1` may arrive as `1.0`). `legend` echoes your levels back so the index is readable without holding on to the request. - `confidence` accompanies `choice` and `score` only; `noul` is already a probability. - `model` echoes the resolved upstream build (`jev-latest` resolves to a pinned version here), which is not the id you send. Every question is evaluated in parallel and in isolation against the same `state`, so answers never influence each other and question order carries no meaning. ## Errors Error responses carry a `tid` (trace id) — include it when contacting support. Reference: https://docs.aihubmix.com/en/FAQs/HTTP-Codes.md - 400 — parameter error; most are passed through from the upstream provider (media: `prompt_missing`, `size_not_supported`, `n_not_within_range`, …) - 401 — missing `Authorization` header, or the key is invalid/expired - 403 — `insufficient_user_quota` (top up at https://console.aihubmix.com/?utm_source=llms-agent&utm_medium=model-llms), account suspended, or this key is not allowed to use this model - 429 — rate limited; back off and retry - 503 — no channel can serve the request (check the model id and your access), or the upstream provider is throttling; retry later ## More - Model page: https://aihubmix.com/model/mammoth-1-free - Try in browser: https://aihubmix.com/playground?model=mammoth-1-free - Full parameter schema: follow `https://aihubmix.com/model-data/index.json` — find this id and fetch its `path` (filenames are content-addressed; do not compose them by hand) - Generate runnable code programmatically: npm `@aihubmix/codegen` — `generateDecisionCode()` renders the snippet above in 7 languages, and `buildDecisionBody()` is the same function the Playground calls to build the request it actually sends, so generated snippets and real requests cannot diverge - Site index for agents: https://aihubmix.com/llms.txt · Onboarding: https://aihubmix.com/agents.md --- Canonical version of this document: https://aihubmix.com/model/mammoth-1-free/llms.txt