# Jev


[Jev](https://docs.typesafe.ai/introduction) is TypeSafe's model for making
structured decisions from text. You send state and typed questions, and Jev
returns values your code can use directly.

Create an [HTTP proxy integration](/docs/integrations-http-proxy) so the API
key stays outside your VM. Get a key from the
[TypeSafe dashboard](https://console.typesafe.ai/keys), export it in your local
shell, and attach the integration to your VM:

```bash
printf '%s' "$TYPESAFE_API_KEY" | \
  ssh exe.dev integrations add http-proxy \
    --name typesafe \
    --target https://api.typesafe.ai \
    --bearer=- \
    --attach vm:<vm-name>
```

From the attached VM, call the integration hostname instead of
`api.typesafe.ai`. The proxy adds the bearer token before forwarding the
request:

```bash
curl --fail-with-body https://typesafe.int.exe.xyz/v1/systemone \
  --json '{
    "state": "My payout has been delayed for three days. Please help ASAP.",
    "model": "jev-latest",
    "questions": {
      "is_urgent": {
        "type": "noul",
        "instructions": "Does this message express urgency?"
      }
    }
  }'
```

The response contains an `answers.is_urgent.noul` value between `0` and `1`.
See TypeSafe's [API reference](https://docs.typesafe.ai/api) for Choice, Score,
and Noul questions.
