Skip to main content
POST
Label a single conversational turn with an intent and an operation, and pull the values out of it with their exact positions. This is the understanding layer between speech-to-text and a reply — what did the speaker just ask for, and what values did they give me.
Billed per input token. A failed run is refunded automatically — you are never charged for an answer you did not get. See Judge pricing.
Your existing 60db API key already works. Judge wraps the 60db Jev model behind the same platform credential as TTS, STT and Memory — you do not need a separate key, and you do not need to reissue the one you have. Keys created from now on carry a judge scope; keys issued earlier are accepted on their slm scope.

Request

Headers

string
required
Bearer token — your standard 60db API key (sk_…), or a user JWT. There is no separate Judge credential.
string
required
application/json

Body

string
required
The turn to classify. Maximum 2,048 Unicode code points.
object
required
The label sets the model may choose from. Every entry is a map of label name → description, and the description is what the model actually reads.
object
required
What the speaker wants.
object
required
What to do about it.
object
Values to pull out of the text.
object
How the agent should reply. Supplying this selects the v2 model, which also returns a response_path and tracks conversation state.
The required unknown label is added for you if you omit it from a classification map, so you cannot fail on a detail you did not write.
string
default:"generic"
generic or medical. v2 only.
integer
default:"8000"
Total request budget in milliseconds, 1–30000. Covers queuing and inference.
string
Your own correlation id, echoed back. Generated for you if omitted.
boolean
default:"true"
false bills the run but keeps it out of history.

Response

object
label (one of your intents) and confidence.
object
label (one of your operations) and confidence.
object | null
Present only on v2 — i.e. when you supplied schema.responsePaths.
array
Each entity carries label, text, start, end and confidence.
string
Always unicode_code_points — see the warning below.
object
queueMs, inferenceMs and totalMs from the model service itself.
number | null
Lowest confidence across the classifications. Entity confidences are excluded — one uncertain span should not flag the whole turn.

Entity offsets

start and end are Unicode code point offsets — not bytes, and not UTF-16 indices.In JavaScript slice with Array.from(text).slice(start, end).join(''); in Python with "".join(list(text)[start:end]). A plain text.slice() or text[start:end] lands in the wrong place as soon as the turn contains an emoji or any astral character.

Errors

Example