Skip to content
SONOEDocs
EspañolESConsole

Sonoe API

Sonoe is a decision model. You send a state (text or JSON) and a set of typed questions; it answers each one with calibrated probabilities your code can act on. It never writes free text, so there is nothing to parse.

What a request looks like

One state, any mix of questions, one round trip:

curl https://api.sonoeai.com/v1/systemone \
  -H "Authorization: Bearer $SONOE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sonoe-latest",
    "state": "My card was charged twice for order 4417 and I need the money back today.",
    "questions": {
      "wants_refund": { "type": "noul", "instructions": "Does the customer want their money back?" },
      "team": {
        "type": "choice",
        "instructions": "Which team should handle this?",
        "criteria": {
          "billing": "Payments, charges, refunds",
          "shipping": "Deliveries and tracking",
          "technical": "Bugs, the app or the website"
        }
      }
    }
  }'
{
  "model": "sonoe-1.1.0",
  "answers": {
    "wants_refund": { "type": "noul", "noul": 0.8695 },
    "team": {
      "type": "choice",
      "choice": "billing",
      "probabilities": { "billing": 0.9913, "shipping": 0.0031, "technical": 0.0056 },
      "confidence": 0.9493
    }
  },
  "usage": { "input_tokens": 372, "output_tokens": 0 }
}

Your code reads answers.team.choice and routes the ticket. If confidence is low, it can ask a person instead of guessing. See Confidence.

Why a decision model

  • Answers are data. A probability, an option you defined, or a position on your scale. No parsing, no retries for malformed output.
  • Probabilities are calibrated. A 0.9 should be right about 90% of the time, so thresholds mean something.
  • It knows when it doesn't know. Every choice and score comes with a confidence, and the native API can abstain for you.
  • Small and fast. Sonoe 1.1 is a 118M-parameter multilingual model that runs on CPU. A request with a few questions takes tens of milliseconds.

Two APIs, one model

EndpointUse it when
POST /v1/systemoneYou want the Jev-compatible API: noul, choice and score questions, and the official TypeSafe SDKs.
POST /v1/decideYou want Sonoe's native API: binary, choice and scale questions with built-in abstention.

Both run the same model and are charged the same way: by the tokens the model reads.

Next steps