A minimal request

Create your own TypeSafe API key and keep it in an environment variable.

curl -X POST https://api.typesafe.ai/v1/systemone \
  -H "Authorization: Bearer $TYPESAFE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"jev-latest","state":"Customer was charged twice and asks for a refund.","questions":{"urgent":{"type":"noul","instructions":"Is this request urgent?"},"department":{"type":"choice","instructions":"Which team should own this ticket?","criteria":{"billing":"Payments, invoices, refunds or subscriptions","technical":"Product bugs, APIs or integrations","sales":"Plans, pricing or sales questions"}}}}'

Three design rules

Make options distinct

Candidate descriptions should be complete and mutually exclusive.

Keep exact work in code

Dates, amounts, permissions and format checks should be deterministic.

Use probability as a gate

Act on high confidence, confirm in the middle, escalate when low.

A simple gate

if confidence >= 0.90:
    execute_low_risk_action()
elif confidence >= 0.65:
    ask_for_confirmation()
else:
    escalate_to_human()
Direct API access first: Let users use their own TypeSafe account. Sell schema design, debugging, evaluation and integration rather than hiding one shared key.

Next step

Browse the open model directory or see the support-routing workflow.