Jev 1.14 API
TypeSafe's newest System One decision model: typed answers with calibrated probabilities over app state and images, plus box questions that locate a target in a picture.
Jev 1.14 is a structured decision model from TypeSafe, available on OttoPort's OpenAI-compatible API as the model ID jev-1.14 at $0.047 per 1M input tokens as of 2026-10-17.
Provider
TypeSafe
Price
$0.047 per 1M input tokens
Model ID
jev-1.14
Type
structured decision model
Create with Jev 1.14
decisionYour result appears here
Start with the example prompt or make it your own. Your OttoPort account is used securely for generation.
Jev 1.14 API pricing
What OttoPort bills for Jev 1.14, and what that works out to per unit. Rates are read from the same catalog the gateway meters against, and were current on 2026-10-17.
| Input | $0.047 / 1M tokens | |
|---|---|---|
| Output | $0.00 / 1M tokens | |
| Typical request | $0.000047 | 1,000 input + 1,000 output tokens |
| Requests per $1 | 21,276 | at that same 1K in / 1K out shape |
| Context window | 262,144 tokens | a full-context request costs $0.0123 in input alone |
No subscription and no minimum — OttoPort bills prepaid credits against usage. See the full rate card.
Call Jev 1.14 in three lines
Send "model": "jev-1.14" to POST https://ottoport.ai/api/v1/decisions with an OttoPort key. No TypeSafe account, no waitlist, no separate SDK.
curl https://ottoport.ai/api/v1/decisions \
-H "Authorization: Bearer $OTTOPORT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jev-1.14",
"state": { "ticket_subject": "Refund for double charge", "customer_tier": "pro" },
"questions": {
"route": {
"type": "choice",
"instructions": "Which queue should this ticket go to?",
"criteria": { "billing": "Payment or invoice issues", "technical": "Bugs and API problems" }
}
}
}'import requests
resp = requests.post(
"https://ottoport.ai/api/v1/decisions",
headers={"Authorization": "Bearer " + API_KEY},
json={
"model": "jev-1.14",
"state": {"ticket_subject": "Refund for double charge", "customer_tier": "pro"},
"questions": {
"route": {
"type": "choice",
"instructions": "Which queue should this ticket go to?",
"criteria": {"billing": "Payment or invoice issues", "technical": "Bugs and API problems"},
}
},
},
).json()
# A typed answer with a probability — nothing to parse.
print(resp["answers"]["route"]["choice"], resp["answers"]["route"]["confidence"])const res = await fetch("https://ottoport.ai/api/v1/decisions", {
method: "POST",
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "jev-1.14",
state: { ticket_subject: "Refund for double charge", customer_tier: "pro" },
questions: {
route: {
type: "choice",
instructions: "Which queue should this ticket go to?",
criteria: { billing: "Payment or invoice issues", technical: "Bugs and API problems" },
},
},
}),
});
// A typed answer with a probability — nothing to parse.
const { answers } = await res.json();
console.log(answers.route.choice, answers.route.confidence);Before you start
- 1. Create a key at /api-keys.
- 2. Top up credits — the smallest pack is $25.
- 3. Paste the request. It returns on the same request.
Full reference at /docs, or drive it from an agent with the MCP server and CLI.
Request parameters
The body POST https://ottoport.ai/api/v1/decisions accepts for Jev 1.14.
| Field | Type | Required | Notes |
|---|---|---|---|
| model | string | Yes | Always jev-1.14 for Jev 1.14. |
| state | object | array | Yes | The app state the questions are judged against: any JSON object, or an array of text strings and images. An image is { "type": "image_url", "image_url": { "url": "data:image/png;base64,…" } } — PNG or JPEG, 256–1568 px a side, base64 only. Its tokens are the billed unit; an image bills up to ~6.4K. |
| questions | object | Yes | Named questions, each typed noul (yes/no), choice (pick one from criteria), score, or box (locate a target in an image; no criteria; answers with top/bottom/left/right fractions). Answers come back under the same keys, with probabilities. Answer tokens are free. |
Jev 1.14 direct vs through OttoPort
Jev 1.14 is the same model either way — what changes is how many accounts, keys, and integrations you carry to reach it.
| TypeSafe direct | Via OttoPort | |
|---|---|---|
| Accounts and keys | A TypeSafe account, plus one more for every other model you add | One OttoPort account and one key for the whole catalog |
| Request shape | TypeSafe's own SDK and response format | OpenAI-compatible — point baseURL at OttoPort and change the model string |
| Switching models | A new integration per provider | Replace jev-1.14 with any other model ID in the catalog |
| Billing | A separate invoice and contract per provider | Prepaid credits, no subscription, one usage ledger |
| Provider outages | Your call fails | Configured backup routes are tried in order on provider failure |
Add an image, then put its `{{image_1}}` placeholder anywhere in `state`.
A box always answers with four edges — pair it with a noul to ask whether the target is there at all.
PNG or JPEG; the playground scales it to at most 1568 px a side, and an image bills up to ~6.4K input tokens.
Jev 1.14 API questions
Cost, keys, and model IDs for Jev 1.14 on OttoPort.
How much does the Jev 1.14 API cost?
On OttoPort, Jev 1.14 costs $0.047 per 1M input tokens as of 2026-10-17. For scale, typical request: $0.000047. Billing is prepaid usage with no subscription and no minimum, and the current rate is always published at ottoport.ai/pricing.
How do I get a Jev 1.14 API key?
You do not need a TypeSafe key. Create an OttoPort account, generate a key at ottoport.ai/api-keys, and send it as "Authorization: Bearer <key>" to POST https://ottoport.ai/api/v1/decisions with "model": "jev-1.14". The same key reaches every other model in the catalog.
What is the model ID for Jev 1.14?
The OttoPort model ID for Jev 1.14 is jev-1.14. Pass it as the model field on POST https://ottoport.ai/api/v1/decisions, or list it programmatically from GET https://ottoport.ai/api/v1/models.
Do I need a TypeSafe account to use Jev 1.14?
No. OttoPort connects to TypeSafe on your behalf, so one OttoPort account covers Jev 1.14 and every other model in the catalog — no per-provider contracts, keys, or invoices.