Hanzo
OpenapiEval

Files one score event for the caller's org and answers 201 with it.

Files one score event for the caller's org and answers 201 with it.

POST /v1/eval/scores

Addresshttps://api.hanzo.ai/v1/eval/scores
MethodPOST
Operationpost_eval_scores
AuthAuthorization: Bearer $HANZO_API_KEY

Files one score event for the caller's org and answers 201 with it.

This is how human review and out-of-band graders land beside the automatic ones: name the score, give it a value (or a stringValue for a categorical label), and attach it to a trace, a run, a dataset example, or any combination.

Scores are validated fail-closed. A value must be FINITE — NaN and Inf are 400 — and if the org has declared a rubric for this name, that rubric decides the type and the value must satisfy it: inside the numeric bounds, or one of the allowed categories. A caller cannot override the declared type by sending a different dataType.

A score is TELEMETRY, not metadata, so it needs the datastore: a deployment with none wired answers 503 rather than accepting a score it cannot persist. Requires a validated principal; 403 without one, and the org is stamped from the validated claim rather than read off the body.

Request

9 fields, body application/json (required).

FieldInTypeRequiredDescription
commentbodystringComment is the grader's reasoning, truncated at 2000 characters.
dataTypebodystringDataType is NUMERIC, CATEGORICAL or BOOLEAN.
datasetItemIdbodystringItemID attaches the score to one graded example.
datasetNamebodystringDataset attaches the score to one dataset.
namebodystringyesName is the score name.
runNamebodystringRunName attaches the score to one run.
stringValuebodystringStringValue is the label of a CATEGORICAL score, which must be one the rubric allows.
traceIdbodystringTraceID attaches the score to one model call.
valuebodynumberValue is the numeric score, which must be finite: NaN and Inf are refused.

Response

StatusBodyMeaning
201scoreViewcreated

201 body — 9 fields.

FieldInTypeAlwaysDescription
commentbodystringComment is the grader's reasoning, truncated at 2000 characters.
dataTypebodystringDataType is NUMERIC, CATEGORICAL or BOOLEAN.
idbodystringID is the score event's handle.
namebodystringName is the score name, which a rubric of the same name governs.
runNamebodystringRunName is the run this score was recorded under, when it came from one.
stringValuebodystringStringValue is the label of a CATEGORICAL score.
timestampbodystringTimestamp is when the score was recorded.
traceIdbodystringTraceID is the model call this score grades, when it grades one.
valuebodynumberValue is the numeric score; for BOOLEAN it is 0 or 1.

Failure carries the platform error shape — see Errors.

Examples

hanzo evals scores create --name <name>

Eval API · All Hanzo APIs · Interactive reference

How is this guide?

On this page