Write human annotations to a batch of runs in an experiment.
Idempotency: Writes use upsert semantics — submitting the same annotation config name for the same run overwrites the previous value. Retrying on network failure will not create duplicates.
Unmatched record IDs: If a record_id does not correspond to an existing
run in the experiment, the annotation for that record is silently ignored.
The response will still include an entry for it. No error is returned.
Payload Requirements
experiment_id is the path parameter for the target experiment.annotations is a list of per-run annotation inputs, each identified by record_id.Valid example
{
"annotations": [
{"record_id": "run_abc", "values": [{"name": "quality", "label": "good"}]}
]
}
Invalid example (annotation name not found in space)
{
"annotations": [
{"record_id": "run_abc", "values": [{"name": "nonexistent_config"}]}
]
}
Most Arize AI endpoints require authentication. For those endpoints that require authentication, include your API key in the request header using the format
The unique identifier of the experiment A universally unique identifier
"RW50aXR5OjEyMzQ1"
Body containing experiment run annotation batch
Batch annotation request for experiment runs.
Batch of experiment run annotations to write. Up to 500 runs per request.
1 - 500 elementsAnnotations successfully written to experiment runs
Result of a batch annotation operation. Contains one result entry per annotated record.
Per-record annotation results, in the same order as the request.