Morph Reflex

A decision, not a paragraph

Send a state and typed questions. Get a probability for every answer and zero output tokens. Text, JSON or images in, 64K context, $0.042/M input and $0.01/M cached.

One POST, every answer typed

Three question types in one request: choice, score and noul (yes or no). No parsing, no retries on malformed output.

01
curl https://api.morphllm.com/v1/systemone \
02
  -H "Authorization: Bearer YOUR_API_KEY" \
03
  -H "Content-Type: application/json" \
04
  -d '{
05
    "model": "reflex",
06
    "state": "I have been trying to connect my Stripe account for 3 days and it keeps failing. I am losing sales. Please help ASAP.",
07
    "questions": {
08
      "department": {
09
        "type": "choice",
10
        "instructions": "Which team should handle this?",
11
        "criteria": {
12
          "billing": "Payment or subscription issues",
13
          "technical": "Bugs or integration problems",
14
          "sales": "Pricing or account questions"
15
        }
16
      },
17
      "frustration": {
18
        "type": "score",
19
        "instructions": "How frustrated does the customer appear?",
20
        "criteria": ["Calm, just stating facts", "Frustrated but civil", "Very angry, strong language"]
21
      },
22
      "is_urgent": {
23
        "type": "noul",
24
        "instructions": "The message conveys urgency or time sensitivity."
25
      }
26
    }
27
  }'
Morph Reflex

Probabilities your code can act on

Three question types

choice picks an option. score returns the expected level across 2 to 10 ordered descriptions. noul returns the probability of yes. Name as many questions as you need; they share one state.

01
"questions": {
02
  "department": {
03
    "type": "choice",
04
    "instructions": "Which team should handle this?",
05
    "criteria": {
06
      "billing": "Payment or subscription issues",
07
      "technical": "Bugs or integration problems",
08
      "sales": "Pricing or account questions"
09
    }
10
  },
11
  "frustration": {
12
    "type": "score",
13
    "instructions": "How frustrated does the customer appear?",
14
    "criteria": [
15
      "Calm, just stating facts",
16
      "Frustrated but civil",
17
      "Very angry, strong language"
18
    ]
19
  },
20
  "is_urgent": {
21
    "type": "noul",
22
    "instructions": "The message conveys urgency."
23
  }
24
}

Probabilities, not prose

Every answer comes back as a distribution that sums to 1, plus a confidence measured against the model's full vocabulary. Output tokens: 0.

01
"answers": {
02
  "department": {
03
    "type": "choice",
04
    "choice": "technical",
05
    "probabilities": {
06
      "billing": 0.21,
07
      "technical": 0.78,
08
      "sales": 0.01
09
    },
10
    "confidence": 0.77
11
  },
12
  "is_urgent": {
13
    "type": "noul",
14
    "noul": 0.97,
15
    "confidence": 0.96
16
  }
17
},
18
"usage": {
19
  "input_tokens": 312,
20
  "output_tokens": 0
21
}

Text, JSON or images

Put a ticket, a transcript or a JSON record in state. Add up to 16 PNG, JPEG or WebP images as base64 data URLs, 8 MB each. Same questions, same answer shape.

01
{
02
  "model": "reflex",
03
  "state": "Satellite frame of an industrial building.",
04
  "images": ["data:image/jpeg;base64,/9j/4AAQ..."],
05
  "questions": {
06
    "equipment": {
07
      "type": "choice",
08
      "instructions": "Is outdoor mechanical equipment visible?",
09
      "criteria": {
10
        "visible": "Equipment is visible.",
11
        "not_visible": "No equipment is visible.",
12
        "unclear": "Too unclear to tell."
13
      }
14
    }
15
  }
16
}

Cached state

Caching is automatic. Repeat a state over about 1,000 tokens and most of its input is reused at $0.01/M. Five measured production calls on one satellite frame, not a latency guarantee.

01
request                      cached/input   time
02
satellite image, first call      0 / 1328   890 ms
03
same image again              1216 / 1328   220 ms
04
switch to a blank image          0 / 1328   226 ms
05
same blank image again        1216 / 1328   131 ms
06
back to the satellite image   1216 / 1328   208 ms
07
 
08
repeat calls reused 91.6% of input tokens

Act on the number




Ask Reflex.

Get Started

Free tier available. Pay per input token only.