# Jepela versus Jev

Jev is TypeSafe AI's System One model, served at `api.typesafe.ai`. Jepela is this API. The request and answer shape is the same on purpose, so code written for one runs against the other with a new base URL and a model name. Everything about Jev below is what TypeSafe's public pages said on 2026-09-22; their performance numbers are their claims.

| | Jev (TypeSafe) | Jepela |
|---|---|---|
| Endpoint | `POST /v1/systemone`, bearer key | the same |
| Request bodies | plain, or compressed with `gzip` (`x-gzip`) or `zstd`, one layer; their newer SDKs compress by default (their API page, read 2026-10-15) | the same |
| Questions | choice, score, noul; JSON structure allowed | the same, the same limits (255 options, 2 to 10 levels); above 20 options Jepela matches by vectors by default (or reads them in two rounds with `method: "engine"`) |
| Answers | probabilities, confidence, usage in tokens | the same; tokens reported when the engine counted them, characters always; plus `warnings`, a `reading` report and a `decision_id` |
| Memory | none; every request is stateless | a per-subject memory in RAM: `subject` on the request, `remember`, rules with a `when` checked in code, `forget` with a verified removal, `delete` |
| Comparison | none | `memory.compare` returns the answer without memory and what changed, on any decision that asks for it; `memory.placebo` also answers with a neutral line |
| The model | Jev, their own, trained with RLCD | Jepela, with the checkpoint named in every answer, and per-customer fine-tuning |
| Where it runs | their cloud | Jepela's cloud: a hosted API at `api.jepela.com`; US region live, EU planned |
| Price | $0.042 per million input tokens, output free | the same: $0.042 per million input tokens, output free; memory writes free |
| Keys and usage | console, keys, usage in tokens | keys from Jepela, a ledger line per request, prepaid credit, `GET /v1/usage` |
| Calibration | claimed and trained for | measured here on one constructed set of 60 support messages (the engine was under-confident there), and fitted per tenant from its own labels (Quality) |
| "Zero hallucinations" | their claim: every output is one of your options | true here too by construction, and not a claim about being right |
| Docs, SDKs, patterns, cookbooks, llms.txt, agent skill | yes | yes, this site; Python and TypeScript SDKs; an MCP server and Claude Code plugin; cookbooks run against this gateway and print measured numbers |

## What the memory changes

With Jev, whatever your software knows about the account, the rules, the history, goes into `state` on every call, and you write the code that fetches and packs it. With Jepela, you write it once to the subject's memory and name the subject. Recall picks the lines that share names and phrases with the state, places them before the state as a block of known facts, and the answer lists them. Measured in the escalation cookbook (2026-09-23): two remembered lines moved the "escalate to a person" answer of `jepela-english` from 0.20 to 0.82 and the route from `support_queue` to `named_person`; the control account did not move. Whether that is better is a question for your data; the point is that the answer shows what the memory did, and `forget` can take it back.

## What Jepela does not claim

No speed or cost multiples against language models, and no speed comparison with Jev: Jepela's end-to-end time is published only once it has been measured on the current setup, with the date and where it was measured from, and never beside a figure for Jev, which was measured elsewhere and in other ways. The engine's own time is on the Models page. Calibration is fitted per tenant from its labels and measured, not claimed. The checkpoint is named in every answer. The limits found while building the demos are documented on the Jaggedness page instead of hidden.
