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.aura.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.aura.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.aura.suite.qualesgroup.com/mcp