simodocs

HTTP API

Response format

JSON
{
  "id": "evt_8sKq2...",
  "model": "simo-1-pro",
  "answers": {
    "refund": {"type": "noul", "noul": 0.991},
    "team":   {"type": "choice", "choice": "billing",
               "probabilities": {"billing": 0.962, "shipping": 0.021, "tech": 0.017}, "confidence": 0.962},
    "mood":   {"type": "score", "score": 2.31,
               "legend": {"0": "calm", "1": "annoyed", "2": "angry", "3": "furious"},
               "probabilities": {"0": 0.02, "1": 0.11, "2": 0.41, "3": 0.46}, "confidence": 0.46},
    "amount": {"type": "fill", "value": "89", "parsed": 89.0, "valid": true, "confidence": 0.99}
  },
  "usage": {"input_tokens": 212, "output_tokens": 0, "cost": 0.00000636}
}
Field Description
id The request id, also sent as x-request-id. Quote it to support
model The model that answered
answers One answer per question id, plus one per derive name
usage.input_tokens Input tokens read (what you pay for)
usage.output_tokens Output tokens written (free)
usage.cost Cost of this request in US dollars

Other fields (more usage detail, and service metadata under simo) may appear. Ignore what you don't use.

Answers by type

type Fields
noul noul: P(true), in [0, 1]
choice choice: the most likely option. probabilities: {option: p}, summing to 1. confidence. args: {name: answer} for the chosen option, when the question had args
score score: the expected level, 0-based. legend: {"0": level, ...}. probabilities: {"0": p, ...}, one per level. confidence: the largest of them
fill value: the text. parsed: the typed value (int, number or list) when kind says so. valid. confidence. check with self_check
extract value (or values with many). valid. confidence. check with self_check
extract, kind: "coordinates" coordinates: [x1, y1, x2, y2] or null. center: [x, y] or null. image_size: [width, height]. valid. confidence

Decision probabilities (noul, probabilities) are calibrated. confidence on reads is not; check is.

Coordinates are in the pixels of the image as sent. If you resized or padded an image before sending it, map the answer back yourself (the Python SDK does this for you).

Headers

Header Example Description
x-request-id evt_8sKq2... The request id
x-simo-cost-usd 0.000006360 What this request cost
x-simo-balance-usd 24.999993640 Your balance after it
x-simo-latency-ms 412 Time spent in the API

These headers are exposed to browsers through CORS, though keys belong on your server.