Flash JEV

Ask Flash JEV typed choice, score, or yes-or-no questions about your application state.

API request

curl https://api.openmayhem.ai/v1/decisions/flash-jev \
  -H "Authorization: Bearer $OPENMAYHEM_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "model": "openmayhem/flash-jev",
    "state": { "message": "The customer needs to change a delivery address" },
    "questions": {
      "intent": {
        "type": "choice",
        "instructions": "Which team should handle this?",
        "criteria": { "shipping": "delivery or address change", "billing": "payment or invoice" }
      },
      "urgent": { "type": "noul", "instructions": "Does this need immediate attention?" }
    }
  }'

Response

{
  "object": "decision.result",
  "model": "openmayhem/flash-jev",
  "decisions": {
    "intent": {
      "type": "choice", "choice": "shipping", "confidence": 0.8,
      "probabilities": { "shipping": 0.9, "billing": 0.1 }
    },
    "urgent": { "type": "noul", "noul": 0.1 }
  },
  "usage": { "prompt_tokens": 120, "completion_tokens": 45, "total_tokens": 165, "cost": "<actual charge>" },
  "openmayhem": { "request_id": "<request id>", "receipt": { "session_id": "<session id>", "verified": true } }
}

Use with MCP

In MCP, list DECISIONS models, choose Flash JEV, call estimate_request with the exact request, then call decide with the same request, estimate_id, and max_cost_usd.

list_models({"endpoint":"DECISIONS","available":true})
get_model({"model":"openmayhem/flash-jev"})
estimate_request({
  "endpoint":"DECISIONS",
  "model":"openmayhem/flash-jev",
  "request":{"state":"A payment failed","questions":{"retry":{"type":"noul","instructions":"Should the payment be retried?"}}}
})
decide({
  "model":"openmayhem/flash-jev",
  "request":{"state":"A payment failed","questions":{"retry":{"type":"noul","instructions":"Should the payment be retried?"}}},
  "estimate_id":"<estimate_id>","max_cost_usd":"<maximum_cost_usd>"
})

Pricing and limits

This is the canonical Flash-Next model behind a typed endpoint. Input and output tokens use its live catalog rates; output is charged. The current price and provider availability are on its model page. There is no separate calibration or tariff.

The serving tokenizer checks up to 64,000 tokens across state and questions, and 32,000 for state with any one question. You can send up to 64 named questions. A too-large request fails before inference.

View Flash JEV in the catalog

How answers are formed

Flash returns probabilities in strict JSON. The API rejects missing labels, invalid values, zero sums, or a sum more than 0.051 from one. It normalizes valid sums, derives choices with lexical tie breaks and scores from the weighted levels, and copies score legends from your request. Confidence is derived from probability concentration; it is not independently calibrated. No label-specific correction is applied.

If the model returns invalid decision output, the API returns 502 with the request ID and any signed charge. Do not start a new paid call merely to retrieve or retry an uncertain outcome.