Results

Get a combined report across results

Changed on

Aggregate two or more test results into a single report: overall success rate, per-metric summary, run counts, critical categories, per-tag success rates, response-latency percentiles, deduplicated failure reasons and combined cost/duration figures.

Find the result IDs with results_list first. Passing a single ID is allowed but results_retrieve is the better tool for one result.

Leave ql at its default {-runs}. Selecting runs embeds every run of every result in the response; fetch the runs you actually need with runs_bulk_retrieve instead.

get/test_framework/v2/results/reports/

Request

  • Base URL
    https://api.cekura.ai
  • URL
    https://api.cekura.ai/test_framework/v2/results/reports/
  • Auth
    • API key in header X-CEKURA-API-KEY
    • or HTTP bearer
    • or HTTP bearer
    • or API key in header X-VOCERA-SHAREABLE-LINK-TOKEN
    • or HTTP bearer

Query parameters

result_idsstring required

Results to combine — comma-separated string (e.g. '5591,5592'), not a JSON array.

run_filtersstring

Optional JSON-encoded filter object restricting which runs the report counts. Every aggregate in the response is computed over the matching runs only. Invalid JSON returns 400.

join is and (every filter must match) or or (any filter may match). Each item in filters has an id (the run field), an operator and a value.

Supported filters:

  • success — equals with true or false
  • status — equals with one run status, e.g. "completed"
  • id — equals or in with run IDs
  • scenarios — in with scenario IDs
  • tags — in with scenario tags; a run matches if its scenario carries any of them
  • scenario_name, call_ended_reason — in with a list of values
  • metrics — no top-level operator; value is a list of metric conditions, each with the metric id and an operator: equals (with value), greaterThanOrEqual / lessThanOrEqual (with value), range (with min and max), or exists / notExists

Example — failed runs from two scenarios whose metric 101 scored at least 3:

{
  "join": "and",
  "filters": [
    {"id": "success", "operator": "equals", "value": false},
    {"id": "scenarios", "operator": "in", "value": [3120, 3121]},
    {"id": "metrics", "value": [{"id": 101, "operator": "greaterThanOrEqual", "value": 3}]}
  ]
}
qlstring

Field selection. {-runs} (the default) returns the aggregates only; {*} additionally embeds every run and can be very large.

agent_idinteger

Tenant scope. Supply one of agent_id, assistant_id, project_id when authenticating with a user session or OAuth bearer token; omit when using an API key already scoped to the tenant.

assistant_idstring

Tenant scope. Supply one of agent_id, assistant_id, project_id when authenticating with a user session or OAuth bearer token; omit when using an API key already scoped to the tenant.

project_idinteger

Tenant scope. Supply one of agent_id, assistant_id, project_id when authenticating with a user session or OAuth bearer token; omit when using an API key already scoped to the tenant.

Response

statusstring required

Always 'completed' — the report is computed on read, not queued.

success_ratenumber double required

Percentage of runs that passed, across every result in the report

total_runs_countinteger required

Runs in the report, including those still executing

completed_runs_countinteger required

Runs that reached a terminal state (completed, failed, timeout or cancelled)

success_runs_countinteger required

Completed runs that passed

failed_runs_countinteger required

Completed runs that failed

agentinteger required

ID of the agent the results belong to

agent_versionunknown required
overall_evaluationunknown required
metricsunknown required
critical_categoriesunknown required
runs_by_tagsunknown required
latency_dataunknown required
failed_reasonsunknown required
performance_metricsunknown required
runsunknown

Changes