Skip to main content
POST
Wire-compatible twin of Extract — same auth, same billing, same request body, same limits — for a caller that already speaks the upstream model service’s own contract directly. Unlike Evaluate, this path does not mirror the upstream’s own route: the upstream’s real extract endpoint is unprefixed (/extract), but both routes here are grouped under /v1/ for a consistent surface, rather than this one route breaking the pattern. The request/response body still matches the upstream exactly — only the path differs. Three differences from POST /judge/extract:
  • The response is the raw upstream classification — 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 request_id-as-storage-key concept that persists anything, and nothing you send changes that.
Billing still happens exactly as on /judge/extract — the same wallet, the same refund-on-failure — 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 Extract. 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 Extract, minus the 60db-local save field:
string
required
The turn to classify. Maximum 200,000 Unicode code points.
object
required
intents, operations, optional entities, optional responsePaths (supplying it selects the v2 model). See Extract → Body for the full shape — the required unknown label is added for you if you omit it.
string
default:"generic"
generic or medical. v2 only.
integer
default:"8000"
Total request budget in milliseconds, 1–30000.
string
Your own correlation id, echoed back. Generated for you if omitted.
No save field — a run through this route is never saved regardless. Use Extract if you need run history.

Response

The raw upstream object — no envelope, and camelCase field names (the upstream’s own extract contract, unlike evaluate’s response, does not use snake_case):
integer
1 or 2, matching whether you supplied schema.responsePaths.
string
Your request_id, or a generated one. Note the camelCase — this is request_id on Extract’s wrapped response.
object
label and confidence.
object
label and confidence.
object | null
Present only on v2. camelCase — response_path on the wrapped response.
array
Each entity carries label, text, start, end, confidence — start/end are Unicode code point offsets, see Extract → Entity offsets.
string
Always unicode_code_points. camelCase — offset_unit on the wrapped response.
string
camelCase — model_revision on the wrapped response.
object
queueMs, inferenceMs, totalMs.

Errors

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

Example