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.