Skip to main content

What it does

The /v1/scaledown endpoint answers typed questions about a piece of text or a document, in the same request/response shape as TypeSafe’s Jev Decisions API (POST /api/alpha/decisions on OpenRouter). If you already have integration code written against Jev, it should work against /v1/scaledown with only the base URL changed. You send a state object (the item being decided on) and a questions map, where each question is one of three typed primitives:
  • choice - pick exactly one option from a set of criteria. Backed by the same calibrated single-label decode as /classify.
  • noul - an independent yes/no question, answered as a probability. Backed by the same calibrated binary decode /classify uses in multi-label mode.
  • score - an ordered-scale question, e.g. rating severity or quality. Answered with the same calibrated decode as choice, over an ordered list of levels, then reduced to a probability-weighted expected value - see How score is calculated.
Every question in a request is answered against the same shared state, concurrently.

When to use it

You’re porting an existing Jev integration. /v1/scaledown accepts the same request shape and returns the same response shape, so a Jev-based routing or tagging layer can point at api.scaledown.xyz instead with minimal changes. You want several classification decisions from one request. Mix choice, noul, and score questions in a single call - e.g. pick a category, check an independent tag, and rate severity - instead of making separate /classify calls. You don’t need our classify-specific features. /v1/scaledown is a thin, standard-shaped layer over /classify. If you need batching (chunks), image-direct multimodal input, or the free-form reasoning explanation, use /classify directly - /v1/scaledown intentionally doesn’t expose those.

How it fits into your workflow

Internally, each choice question becomes one single-label classify call (its criteria become labels), each noul question becomes one binary yes/no classify call, and each score question becomes one single-label classify call over its ordered levels (reduced afterward to an expected value). All run concurrently against the shared state, and the response’s usage is the sum of every internal call’s tokens.

Model

The only supported model value is "classify-1", which is also the default when the field is omitted. Sending any other value returns 422. There’s currently no way to select a different backend model through this endpoint.

Differences from Jev