# 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
