curl --request GET \
--url https://voice-api.onclarity.com/v1/projects/{projectId}/agents/{agentId}/eval-submissions/{id}/report \
--header 'Authorization: Bearer <token>'import requests
url = "https://voice-api.onclarity.com/v1/projects/{projectId}/agents/{agentId}/eval-submissions/{id}/report"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://voice-api.onclarity.com/v1/projects/{projectId}/agents/{agentId}/eval-submissions/{id}/report', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"submission": {
"id": "sub_01J9",
"project_id": "proj_123",
"created_by": null,
"agent_id": "agent_456",
"judge_id": "judge_01",
"suite_id": "suite_01",
"name": "Booking regression 2026-10-22 14:00",
"description": null,
"runs_per_scenario": 2,
"judge_concurrency": 5,
"judge_max_retries": 3,
"max_parallel_calls": 2,
"status": "active",
"use_isolated_data": false,
"simulator_audio_stack": "hamsa",
"simulator_llm": "gemini",
"simulator_silence_mode": "off",
"simulator_model_config": null,
"agent_version_id": "ver_789",
"agent_version_number": 12,
"error_message": null,
"created_at": "2026-10-22T14:00:00.000Z",
"updated_at": "2026-10-22T14:00:00.000Z",
"judge": {
"id": "judge_01",
"name": "Default judge",
"description": null,
"model": "gemini-3.5-flash",
"prompt_template": "…",
"temperature": 0
},
"suite": {
"id": "suite_01",
"name": "Booking flows",
"description": null,
"scenario_ids": [
"scn_01"
],
"common_test_case_ids": [
"tc_7f3a"
]
},
"scenarios": [
{
"id": "scn_01",
"name": "Caller books for tomorrow",
"description": null,
"simulator_config": {
"prompt": "You want to book a cleaning for tomorrow morning.",
"max_turns": 20
},
"test_case_ids": [],
"test_cases": []
}
],
"common_test_cases": [
{
"id": "tc_7f3a",
"project_id": "proj_123",
"name": "Confirms the booking",
"description": null,
"when_relevant": "The caller asked to book an appointment.",
"success_criteria": "The agent repeats the date and time back and the caller confirms.",
"failure_criteria": "The agent ends the call without confirming the date and time.",
"created_by": null,
"created_at": "2026-10-01T09:00:00.000Z",
"updated_at": "2026-10-01T09:00:00.000Z"
}
],
"runs_completed": 0,
"runs_total": 2,
"judge_counts": {
"pending": 0,
"in_progress": 0,
"done": 0,
"error": 0,
"error_final": 0,
"unusable": 0
}
},
"agent": {
"id": "agent_456",
"name": "Reception agent",
"version_id": "ver_789",
"version_number": 12,
"stack": null
},
"harness": {
"suite": {
"id": "suite_01",
"name": "Booking flows"
},
"judge": {
"id": "judge_01",
"name": "Default judge",
"model": "gemini-3.5-flash"
},
"simulator_audio_stack": "hamsa",
"simulator_llm": "gemini",
"silence_modes": [
"off"
],
"simulator_model_config": null,
"runs_per_scenario": 2,
"max_parallel_calls": 2,
"use_isolated_data": false
},
"progress": {
"percent": 50,
"calls": {
"total": 2,
"completed": 1,
"in_flight": 1,
"failed": 0,
"failed_infra": 0,
"queued": 0
},
"judging": {
"total": 1,
"done": 1,
"in_progress": 0,
"queued": 0,
"error": 0,
"error_retrying": 0,
"error_final": 0,
"unusable": 0
},
"timing": {
"started_at": "2026-10-22T14:05:00.000Z",
"last_activity_at": "2026-10-22T14:09:12.000Z",
"elapsed_ms": 252000,
"eta_ms": null
}
},
"totals": {
"passed": 1,
"failed": 0,
"not_sure": 0,
"not_relevant": 0,
"error": 0,
"verdicts": 1,
"applicable": 1,
"pass_rate": 100,
"pass_rate_wide": 100
},
"by_kind": {
"common": {
"passed": 1,
"failed": 0,
"not_sure": 0,
"not_relevant": 0,
"error": 0,
"verdicts": 1,
"applicable": 1,
"pass_rate": 100,
"pass_rate_wide": 100
},
"scenario": {
"passed": 0,
"failed": 0,
"not_sure": 0,
"not_relevant": 0,
"error": 0,
"verdicts": 0,
"applicable": 0,
"pass_rate": null,
"pass_rate_wide": null
}
},
"criteria": [],
"scenarios": [],
"calls": [],
"latency": {},
"health": {
"checks": [
{
"id": "coverage",
"title": "Verdict coverage",
"status": "pass",
"detail": "Every graded call has verdicts."
}
],
"verdict": "INCOMPLETE"
},
"top_failures": []
}{
"error": "Invalid or revoked token"
}{
"error": "Eval submission not found"
}{
"error": "agent type assist cannot take calls: an assist agent listens to a human-operated call and never speaks",
"code": "AGENT_TYPE_NOT_DISPATCHABLE",
"agent_type": "assist",
"agent_id": "agent_456"
}Get an eval run's report
Returns the whole run summarized in one read: pass rates overall and per test case and scenario, each call, latency, run-health checks, the agent setup tested and the test setup used. The judge’s reasoning is not included; read it from the verdicts endpoint.
curl --request GET \
--url https://voice-api.onclarity.com/v1/projects/{projectId}/agents/{agentId}/eval-submissions/{id}/report \
--header 'Authorization: Bearer <token>'import requests
url = "https://voice-api.onclarity.com/v1/projects/{projectId}/agents/{agentId}/eval-submissions/{id}/report"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://voice-api.onclarity.com/v1/projects/{projectId}/agents/{agentId}/eval-submissions/{id}/report', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"submission": {
"id": "sub_01J9",
"project_id": "proj_123",
"created_by": null,
"agent_id": "agent_456",
"judge_id": "judge_01",
"suite_id": "suite_01",
"name": "Booking regression 2026-10-22 14:00",
"description": null,
"runs_per_scenario": 2,
"judge_concurrency": 5,
"judge_max_retries": 3,
"max_parallel_calls": 2,
"status": "active",
"use_isolated_data": false,
"simulator_audio_stack": "hamsa",
"simulator_llm": "gemini",
"simulator_silence_mode": "off",
"simulator_model_config": null,
"agent_version_id": "ver_789",
"agent_version_number": 12,
"error_message": null,
"created_at": "2026-10-22T14:00:00.000Z",
"updated_at": "2026-10-22T14:00:00.000Z",
"judge": {
"id": "judge_01",
"name": "Default judge",
"description": null,
"model": "gemini-3.5-flash",
"prompt_template": "…",
"temperature": 0
},
"suite": {
"id": "suite_01",
"name": "Booking flows",
"description": null,
"scenario_ids": [
"scn_01"
],
"common_test_case_ids": [
"tc_7f3a"
]
},
"scenarios": [
{
"id": "scn_01",
"name": "Caller books for tomorrow",
"description": null,
"simulator_config": {
"prompt": "You want to book a cleaning for tomorrow morning.",
"max_turns": 20
},
"test_case_ids": [],
"test_cases": []
}
],
"common_test_cases": [
{
"id": "tc_7f3a",
"project_id": "proj_123",
"name": "Confirms the booking",
"description": null,
"when_relevant": "The caller asked to book an appointment.",
"success_criteria": "The agent repeats the date and time back and the caller confirms.",
"failure_criteria": "The agent ends the call without confirming the date and time.",
"created_by": null,
"created_at": "2026-10-01T09:00:00.000Z",
"updated_at": "2026-10-01T09:00:00.000Z"
}
],
"runs_completed": 0,
"runs_total": 2,
"judge_counts": {
"pending": 0,
"in_progress": 0,
"done": 0,
"error": 0,
"error_final": 0,
"unusable": 0
}
},
"agent": {
"id": "agent_456",
"name": "Reception agent",
"version_id": "ver_789",
"version_number": 12,
"stack": null
},
"harness": {
"suite": {
"id": "suite_01",
"name": "Booking flows"
},
"judge": {
"id": "judge_01",
"name": "Default judge",
"model": "gemini-3.5-flash"
},
"simulator_audio_stack": "hamsa",
"simulator_llm": "gemini",
"silence_modes": [
"off"
],
"simulator_model_config": null,
"runs_per_scenario": 2,
"max_parallel_calls": 2,
"use_isolated_data": false
},
"progress": {
"percent": 50,
"calls": {
"total": 2,
"completed": 1,
"in_flight": 1,
"failed": 0,
"failed_infra": 0,
"queued": 0
},
"judging": {
"total": 1,
"done": 1,
"in_progress": 0,
"queued": 0,
"error": 0,
"error_retrying": 0,
"error_final": 0,
"unusable": 0
},
"timing": {
"started_at": "2026-10-22T14:05:00.000Z",
"last_activity_at": "2026-10-22T14:09:12.000Z",
"elapsed_ms": 252000,
"eta_ms": null
}
},
"totals": {
"passed": 1,
"failed": 0,
"not_sure": 0,
"not_relevant": 0,
"error": 0,
"verdicts": 1,
"applicable": 1,
"pass_rate": 100,
"pass_rate_wide": 100
},
"by_kind": {
"common": {
"passed": 1,
"failed": 0,
"not_sure": 0,
"not_relevant": 0,
"error": 0,
"verdicts": 1,
"applicable": 1,
"pass_rate": 100,
"pass_rate_wide": 100
},
"scenario": {
"passed": 0,
"failed": 0,
"not_sure": 0,
"not_relevant": 0,
"error": 0,
"verdicts": 0,
"applicable": 0,
"pass_rate": null,
"pass_rate_wide": null
}
},
"criteria": [],
"scenarios": [],
"calls": [],
"latency": {},
"health": {
"checks": [
{
"id": "coverage",
"title": "Verdict coverage",
"status": "pass",
"detail": "Every graded call has verdicts."
}
],
"verdict": "INCOMPLETE"
},
"top_failures": []
}{
"error": "Invalid or revoked token"
}{
"error": "Eval submission not found"
}{
"error": "agent type assist cannot take calls: an assist agent listens to a human-operated call and never speaks",
"code": "AGENT_TYPE_NOT_DISPATCHABLE",
"agent_type": "assist",
"agent_id": "agent_456"
}Authorizations
Your organization API key (it starts with anek_org_). The same key works on the Voice API and the Support API. See Authentication.
Path Parameters
Project id
Agent id
Eval submission id
Response
The report
The whole run, summarized: totals and pass rates, results per test case and per scenario, each call, latency, run-health checks, the agent setup tested and the test setup used. The judge's reasoning is not included; read it from the verdicts endpoint.
An eval run: one suite run against one agent version and graded by one judge, with the suite, judge, scenarios and test cases it uses and its progress so far.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
How far along the run is.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Results per test case.
Results per scenario (one row per scenario and silence behavior).
Each call, with its verdict counts.
How the calls ended, counted by reason. Absent when not measured.
Show child attributes
Show child attributes
Show child attributes
Show child attributes