Get official Jev API access
Sign in to the TypeSafe console to check access availability and obtain a key. Store it on your server as TYPESAFE_API_KEY. AIJev’s free browser allowance does not provide credentials or credits for your own application.
Send your first request
Run this command in a trusted terminal after setting your environment variable. It follows theofficial quick start and makes a billable request under your provider account. The example has been checked against the documentation; it is not a recorded API run.
curl --fail-with-body https://api.typesafe.ai/v1/systemone \
-H "Authorization: Bearer $TYPESAFE_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "jev-latest",
"state": "The export failed and our report is due tomorrow.",
"questions": {
"has_deadline": {
"type": "noul",
"instructions": "Does the message explicitly mention a deadline?"
}
}
}'Read answers.has_deadline.noul in the JSON response as the probability of a yes answer. The value depends on the input and model. Handle non-success HTTP responses before consuming the result. The direct TypeSafe API uses jev-latest here; provider-specific identifiers such as AIJev’s configured typesafe/jev-1.13 are not interchangeable.
Check the HTTP API reference for response fields and supported options. For the three decision types together, read ourChoice, Score, and Noul walkthrough.
Start with a focused decision
Jev evaluates a state and returns a constrained answer. The Playground lets you inspect Choice, Score, and Yes / No patterns without asking you to create an account or provide a key.
AIJev uses a pinned Jev version, typesafe/jev-1.13, for its Playground. Your own application should follow the current guidance and supported model identifiers in the official documentation.
Playground examples: define the answer space
Give each option a clear, distinct label and include a fallback when a request may not belong to an existing category. The code panel below represents the shape used by this Playground; it is not an API integration snippet.
JavaScript
{
"playground": "https://aijev.net",
"language": "JavaScript",
"request": {
"model": "typesafe/jev-1.13",
"state": "Customer says: \"I was charged twice for my subscription and need a refund.\"",
"questions": {
"decision": {
"type": "choice",
"instructions": "Which team should handle this request?",
"criteria": {
"Billing": "Billing",
"Technical Support": "Technical Support",
"Sales": "Sales",
"Other": "Other"
}
}
},
"provider": {
"allow_fallbacks": false
}
},
"note": "AIJev Playground request shape only. For application integration, visit https://docs.typesafe.ai."
}Python
{
"playground": "https://aijev.net",
"language": "Python",
"request": {
"model": "typesafe/jev-1.13",
"state": "Customer says: \"I was charged twice for my subscription and need a refund.\"",
"questions": {
"decision": {
"type": "choice",
"instructions": "Which team should handle this request?",
"criteria": {
"Billing": "Billing",
"Technical Support": "Technical Support",
"Sales": "Sales",
"Other": "Other"
}
}
},
"provider": {
"allow_fallbacks": false
}
},
"note": "AIJev Playground request shape only. For application integration, visit https://docs.typesafe.ai."
}cURL
{
"playground": "https://aijev.net",
"language": "cURL",
"request": {
"model": "typesafe/jev-1.13",
"state": "Customer says: \"I was charged twice for my subscription and need a refund.\"",
"questions": {
"decision": {
"type": "choice",
"instructions": "Which team should handle this request?",
"criteria": {
"Billing": "Billing",
"Technical Support": "Technical Support",
"Sales": "Sales",
"Other": "Other"
}
}
},
"provider": {
"allow_fallbacks": false
}
},
"note": "AIJev Playground request shape only. For application integration, visit https://docs.typesafe.ai."
}Score: define a useful rubric
Order criteria from low to high and make each anchor concrete. A score can sit between criterion indices, so design your downstream thresholds around the behavior you measure.
{
"playground": "https://aijev.net",
"language": "JavaScript",
"request": {
"model": "typesafe/jev-1.13",
"state": "Query: How do I reset my password?\nDocument: Open account settings, choose Security, then select Reset password. A confirmation link will be sent to your email.",
"questions": {
"decision": {
"type": "score",
"instructions": "How relevant is the document to the query?",
"criteria": [
"Not relevant: does not address the question",
"Partially relevant: offers some useful context",
"Highly relevant: directly answers the question"
]
}
},
"provider": {
"allow_fallbacks": false
}
},
"note": "AIJev Playground request shape only. For application integration, visit https://docs.typesafe.ai."
}Yes / No: choose a threshold
AIJev presents a Yes / No result from a probability. A production system should pick a threshold based on its own evaluation data and the cost of false positives and false negatives.
{
"playground": "https://aijev.net",
"language": "JavaScript",
"request": {
"model": "typesafe/jev-1.13",
"state": "Instruction: Answer in one sentence.\nResponse: You can reset your password from the Security section in account settings.",
"questions": {
"decision": {
"type": "noul",
"instructions": "Does the response follow the instruction?"
}
},
"provider": {
"allow_fallbacks": false
}
},
"note": "AIJev Playground request shape only. For application integration, visit https://docs.typesafe.ai."
}For your production application
- Keep credentials on a trusted server, never in browser code.
- Validate returned types, option labels, and probability bounds.
- Set timeouts and use bounded retries.
- Require human review for consequential or uncertain decisions.
AIJev’s /api/jev route serves this Playground only and is not a public integration API. Use the official Jev documentation to connect your own application.