Skip to main content
POST
Create typed decisions with TypeSafe Jev

Overview

TypeSafe Jev is a decision model. Instead of generating prose, Jev answers named, typed questions about the state you provide:
  • choice selects one named option and returns a probability for every option.
  • score returns an expected score over an ordered rubric.
  • noul returns the probability that a yes/no statement is true.
For new HTTP integrations, use the native POST /api/v1/decisions endpoint. If you already use the official TypeSafe SDK, point it at NanoGPT’s POST /api/v1/systemone compatibility endpoint. Jev is also available through NanoGPT’s OpenAI-compatible Chat Completions and Responses APIs and the Anthropic-compatible Messages API.
Jev returns calibrated probabilities, not generated text. Use a chat model when you need an explanation or other free-form response.

Models

The System One compatibility endpoint also accepts the official SDK model names jev-1.13 and jev-latest. Use the typesafe/... names on the native Decisions and OpenAI/Anthropic-compatible endpoints.

Native Decisions API

Endpoint

Authenticate with either Authorization: Bearer YOUR_API_KEY or x-api-key: YOUR_API_KEY.

Example request

Example response

noul is the probability of the true outcome. A score can be fractional because it is the expected value across the returned score distribution.

Question types

instructions and criterion descriptions can be strings, non-empty JSON objects, or non-empty arrays. A choice criterion may also be null when its label is self-explanatory. The top-level state can be a string, JSON object, or JSON array. Question names become keys in answers.

Request fields

The native provider object can contain endpoint-level order, only, ignore, allow_fallbacks, require_parameters, max_price, zdr, and data_collection controls. These names describe native Decisions endpoints such as TypeSafe; they are not NanoGPT provider IDs. API-key provider restrictions and zero-data-retention requirements still apply.

Official TypeSafe SDK

NanoGPT exposes POST /api/v1/systemone so the official TypeSafe JavaScript and Python SDKs can call Jev without changing their request types.
The SDK’s System One call is supported. The SDK’s model-list method is not, because NanoGPT’s /api/v1/models response uses the NanoGPT/OpenAI-compatible model-list shape rather than TypeSafe’s model-list shape.

OpenAI and Anthropic compatibility

Use these shapes when Jev must fit into an existing OpenAI- or Anthropic-compatible client. The answer object is returned as JSON text, so parse the returned string once.

Chat Completions

Parse choices[0].message.content as JSON.

Responses API

Parse output_text as JSON. The same JSON text is also available in the assistant output item.

Anthropic Messages

Parse content[0].text as JSON. max_tokens is accepted for Anthropic SDK compatibility but does not change Jev’s fixed typed output.

Limitations

Jev requests are deliberately narrower than chat generation requests:
  • Only non-streaming text input in user messages is supported on compatibility endpoints.
  • System, developer, assistant, tool, image, audio, video, and file input is not supported.
  • Tools, sampling controls, log probabilities, and reasoning generation controls are not supported.
  • Output-token-limit fields are accepted where an SDK requires them, but they do not change Jev’s fixed typed output.
  • BYOK and accountless x402 payments are not supported.
  • Standard NanoGPT or X-Provider provider pins are not supported. Use the native Decisions provider object only when you need endpoint-level routing controls.
Unsupported combinations return a 400 error instead of being silently ignored.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
model
enum<string>
required
Available options:
typesafe/jev-1.13,
~typesafe/jev-latest,
typesafe/jev-latest
state
required

Application state to evaluate.

questions
object
required
provider
object | null

Optional native Decisions endpoint-routing controls. These are not NanoGPT provider IDs.

session_id
string
Maximum string length: 256
trace
object
user
string
Maximum string length: 256

Response

Typed decisions response

model
string
required
answers
object
required
usage
object
required
id
string
provider
string