Select a model
Classifies a task with Neon 1.1 and selects a model from the benchmark catalog. Requires runs_write.
Billed as one decision run: the same admission, quota, credit and settlement as POST /v1/runs with "kind": "decision". Send the task as prompt or as messages, not both. The body may be up to 4 MiB; decisions read up to 262,144 input tokens.
Idempotency-Key is optional. Replaying a key returns the stored classification with replayed: true and never charges twice.
Authorizations
An API key (otsk_ + 64 hex) or a console session token.
Headers
Optional. Replaying a key returns the stored classification and never charges twice.
Body
A selection request: the task, as prompt or as messages (exactly one).
The task. Bodies up to 4 MiB are accepted; only the head and tail of the task are read to classify it.
The task as conversation turns, joined into one text as for prompt.
balanced (default), cost_efficient, capability_heavy or
domain_skills. Anything else is 400 invalid_policy.
"balanced"
v1 override: route as this domain's default task type (coding,
math, reasoning, knowledge, agentic, long_context,
writing, multilingual or general). The task type is then not
classified; difficulty and the facets still are.
Skip task-type classification and route as this task type (see
GET /v1/router/task-types). Wins over domain.
"code_generation"
interactive, standard (default) or batch: how much estimated
latency weighs in balanced.
"standard"
Drop models whose estimated time to the full answer exceeds this, or whose speed is not measured.
balanced only: replaces the quality, cost and latency weights.
With any other policy it is 400 weights_require_balanced.
Filters over the catalog. All optional; an empty object keeps every model.
Response
The selected model, the classification and the ranking
rtr_ plus the uuid of the classification run.
"rtr_0f8e3c1a9b2d4e5f8a7b6c5d4e3f2a1b"
The classification run, readable at /v1/runs/{run_id} and in usage.
A model, as a selection names it.
Top candidates, best first, at most ten.
Which benchmarks decided. v2 always decides on the task's weighted
benchmark vector; domain and intelligence are the v1 values.
domain, intelligence, benchmarks Filters that removed at least one model, in the order applied.
domain_skills with a most probable task type under 40%.
x >= 0"neon-1.1"
The catalog snapshot date.
The benchmark snapshot date.
True when an Idempotency-Key replayed a stored classification.
v1 name for threshold.tau (balanced, cost_efficient).
The quality bar (balanced, cost_efficient).
Tokens the run used.
x >= 0