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 is currently available on https://nano-gpt.com, including the Decisions and System One endpoints and Jev requests through compatible chat APIs. The direct API host does not yet list Jev models or serve its dedicated routes. Use the website host for Jev until the direct host is updated.
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