VocalDocscontracts 1.65.0

Read an evaluation Call of a run

GET /v1/prompt-eval-suites/{prompt_eval_suite_id}/runs/{run_id}/calls/{call_id}

PropertyValue
Operationget_prompt_eval_call
GroupPrompt evaluations and experiments
Scopeprompts:read
Scopes of include valuestranscript needs transcripts:read
Route classread
IdempotencyNo Idempotency-Key
AuditAn audited content read evaluations.prompt_eval_call.read, when the request names an include value
Released in1.63.0
Phase 0 hostServed (the hosted api pins 1.65.0)

Answers one evaluation Call of the run (1.63.0): its scenario, arm, repetition and model family, how it ended, and its Turn metrics without text. transcript is null unless include=transcript adds the text of its Turns, which needs transcripts:read and makes the read an audited content read, as get_call_transcript is; this is what a calibration's labeller reads. An evaluation Call is a test Call, so a live API key is answered not_found, as for any test Call; a Call of another run is not_found; and a Call a worker before 1.63.0 reported answers no Turn and a null transcript.

Request

Set VOCAL_API to the base URL of your API and VOCAL_API_KEY to an API key with the prompts:read scope (Authentication and keys). Replace each placeholder, such as agt_... or <name>, with your own value.

curl "$VOCAL_API/v1/prompt-eval-suites/pes_.../runs/per_.../calls/call_..." \
  -H "Authorization: Bearer $VOCAL_API_KEY"

Parameters

NameInTypeRequiredDescription
prompt_eval_suite_idpathPromptEvalSuiteIdyesThe id of an evaluation suite: pes_ and the row's UUIDv7 in 26 Crockford base32 characters. Opaque and safe to log.
run_idpathPromptEvalRunIdyesThe id of an evaluation run or a conversation test run: per_ and the row's UUIDv7 in 26 Crockford base32 characters. Opaque and safe to log.
call_idpathCallIdyesThe id of a Call: call_ and the row's UUIDv7 in 26 Crockford base32 characters. Opaque and safe to log.
includequeryarray of PromptEvalCallIncludenoContent classes to add, comma-separated: transcript answers the text of the Turns, needs transcripts:read and makes the read an audited content read (1.63.0).

Responses

StatusContent typeShapeError codes
200application/jsonPromptEvalCall
400application/jsonErrorEnvelopeinvalid_request
401application/jsonErrorEnvelopeunauthenticated
403application/jsonErrorEnvelopeforbidden
404application/jsonErrorEnvelopenot_found
429application/jsonErrorEnveloperate_limited
500application/jsonErrorEnvelopeinternal_error

Fields of the 200 answer

The shape is PromptEvalCall.

FieldTypeRequiredDescription
armPromptEvalArmyes
call_idCallIdyes
ended_atTimestamp or nullyes
ended_reasonEndedReason or nullyes
keyPromptEvalKey or nullyesThe key of an inline test; else null.
model_familyModelFamily or nullyesThe family the Call ran under; null for the family of the chain's primary.
object"prompt_eval_call"yes
repetitionintegeryes
run_idPromptEvalRunIdyes
scenario_idPromptEvalScenarioId or nullyesNull for an inline test.
started_atTimestamp or nullyes
suite_idPromptEvalSuiteIdyes
transcriptarray or nullyesThe text of each Turn, the content class transcript: null unless the read names include=transcript, and null once scrubbed or for an older worker.
turnsarray of TurnMetricsyesThe Turn metrics, without text, Turn 0 first; empty for an older worker.