SYSTEMONE

Documentation

1. Get a key

Sign in, wait for approval if your account needs it, open the dashboard and create a key. It is shown once; keep it in your secrets manager.

2. Call the API

One endpoint. Send the key as Authorization: Bearer <key> (what the TypeSafe SDKs do) or as X-API-Key.

curl -s https://systemone.suite.qualesgroup.com/v1/systemone \
  -H "Authorization: Bearer $SYSTEMONE_KEY" \
  -H "content-type: application/json" \
  -d '{
    "state": "I was charged twice and never got my money back.",
    "model": "systemone-latest",
    "questions": {
      "team": {"type": "choice", "instructions": "Which team handles it?",
               "criteria": {"billing": "payments and refunds", "shipping": "deliveries", "technical": "errors"}},
      "urgent": {"type": "noul", "instructions": "Is it urgent?"},
      "anger": {"type": "score", "criteria": ["calm", "annoyed", "furious"]}
    }
  }'
{
  "model": "systemone-1.0",
  "answers": {
    "team": {"type": "choice", "choice": "billing", "confidence": 1.0,
             "probabilities": {"billing": 1.0, "shipping": 0.0, "technical": 0.0}},
    "urgent": {"type": "noul", "noul": 1.0},
    "anger": {"type": "score", "score": 1.0, "confidence": 1.0,
              "legend": {"0": "calm", "1": "annoyed", "2": "furious"},
              "probabilities": {"0": 0.0, "1": 1.0, "2": 0.0}}
  },
  "usage": {"input_tokens": 183, "output_tokens": 3}
}

3. The three primitives

  • · choice: One option from a map of criteria; the answer carries choice, probabilities and confidence.
  • · score: A level on a list of criteria, 0 being the first; the answer carries score, legend, probabilities and confidence.
  • · noul: Yes or no to an instruction; the answer is noul, 1.0 for yes and 0.0 for no.

systemone-standard-1.0 and the questions auto keeps measure their doubt: probabilities come from the model and confidence is (n × largest − 1) / (n − 1). systemone-fast-1.0 and systemone-precise-1.0 name one option: probabilities are one-hot and confidence is 1.0.

4. With the official SDK

Point the TypeSafe SDK at this portal's URL with base_url; everything else is unchanged.

# pip install typesafe-sdk
from typesafe_sdk import Choice, TypeSafeClient

with TypeSafeClient(api_key=KEY, base_url="https://systemone.suite.qualesgroup.com") as client:
    r = client.system_one("I was charged twice.", {
        "team": Choice(criteria={"billing": "payments and refunds", "shipping": "deliveries"}),
    })
    print(r.choices["team"].choice)

5. Models

GET /v1/models lists them. The names of the first release still work as aliases.

  • · systemone-fast-1.0: the cheapest per token, for high volumes of simple classification; less accurate than standard.
  • · systemone-standard-1.0: classification by meaning, any language, a few hundred milliseconds, with a measured confidence. The default.
  • · systemone-precise-1.0: checks each rule before it answers: for arithmetic or chained rules; slower and dearer.
  • · systemone-auto-1.0: standard first; the questions it doubts go to precise.
  • · systemone-latest, jev-latest, systemone-1.0: aliases of systemone-standard-1.0 (jev-latest is the default of the TypeSafe SDKs).
  • · systemone-careful-1.0: alias of systemone-precise-1.0.

6. Limits and errors

  • · 10,000 requests per UTC day across all your keys.
  • · X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset on every response.
  • · 401 missing, invalid or revoked key · 422 malformed request (body with detail) · 429 daily limit reached · 503 engine unavailable.
  • · x-typesafe-request-id on every response, for support.

7. For agents: MCP

The same decisions as an MCP tool, over streamable HTTP at /mcp with the same key in the same headers. Point any MCP client at it.

https://systemone.suite.qualesgroup.com/mcp