Skip to main content
POST
Byte-for-byte wire-compatible twin of Evaluate — same auth, same billing, same request body — for a caller that already speaks the upstream model service’s own contract directly. This path matches the upstream’s own POST /v1/systemone exactly, so that caller needs no custom integration to point at api.60db.ai. Three differences from POST /judge/evaluate:
  • The response is the raw upstream answer — no {success,data} envelope, and no id / saved / credits_charged fields.
  • Errors are {error:{code,message}}, not {success:false,message,code}.
  • A run through this route is never saved to Judge history — there’s no save, label, or rubric_id on the wire, and nothing you send changes that.
Billing still happens exactly as on /judge/evaluate — the same wallet, the same refund-on-failure — it just has nowhere to go in the upstream’s own envelope, so it rides the x-credit-charged / x-credit-balance / x-billing-tx response headers instead of the body.
Billed per input token, same rate as Evaluate. See Judge pricing.

Request

Headers

string
required
Bearer token — your standard 60db API key (sk_…), or a user JWT. The same credential as every other Judge route.
string
required
application/json

Body

Identical to Evaluate, minus the 60db-local fields that don’t exist on the upstream’s own wire format:
string | object | array
required
The content every question is asked about. Top-level numbers, booleans and null are rejected.
object
required
Map of answer key → question, 1–32 entries — choice, score or noul. See Evaluate → Body for the full shape of each type.
string
default:"jev-latest"
Model name. Fetch the valid list from List models.
No rubric_id, save, or label fields — those are 60db-local conveniences with no place in the upstream contract. Use Evaluate if you need a saved rubric or run history.

Response

The raw upstream object — no envelope:
string
The resolved model id, e.g. 60db-decision-model-v1.
object
One answer per question, under the same key you supplied. Same shape as Evaluate’s data.answers.
object
input_tokens and output_tokens (snake_case, as the upstream reports them). output_tokens can be non-zero — billing is input-only regardless.
object
Includes escalated_questions — how many answers the service refined when confidence was low. The same model answers every question; there is no separate second-stage model.

Errors

Every error above is returned as {"error": {"code": "...", "message": "..."}}, not {success:false,...}.

Example