Skip to main content
The Decisions API answers a set of typed questions over the same context. Instead of free-form text, it returns a probability, one of a named set of options, or a score on an ordered scale, so a caller can branch on the result without parsing prose. Use the same each::labs API key and base URL as the rest of each::api:
The Decisions API is in alpha. Its request and response contract may change without notice while it is stabilized, so avoid depending on it in production yet. Contact us if you want to build against it.

Model and routing

Send typesafe/jev-1.13 as the model. each::labs routes the request through the LLM Router to OpenRouter, which serves TypeSafe Jev. You call a single each::labs endpoint; provider selection and credentials stay on our side, and usage is billed to your each::labs account. Unlike chat completions, this is not an OpenAI-compatible operation and has no corresponding OpenAI SDK method. Call it directly over HTTP.

Endpoint

A request is answered synchronously: one call evaluates every question and returns the answers in the response body. There is no prediction to poll.

Authentication

Pass a standard API key as a Bearer token:

Request body

The body has exactly three fields: model, state, and questions. Any other field is rejected. Each question is an object with a type, instructions, and — depending on the type — criteria: instructions and every criteria value accept a string, an object, or an array. The response preserves your question names as the keys of answers.
Streaming, asynchronous mode, provider overrides, webhooks, and client-supplied metadata or source are not supported on this endpoint. Sending them — or an X-Provider or webhook header — returns 400. Organization, user, execution, and source identity are always taken from the authenticated key.

Example

Response

Answer fields

Every answer carries the question’s type. The remaining fields depend on it:

Usage

When the upstream returns a decision id, it is included in the response.

Error responses

Errors use the same shape as the rest of each::api:
Last modified on September 21, 2026