---
title: "List quality metrics"
method: GET
path: "/test_framework/v2/metrics/"
tags: ["Metrics"]
---

# List quality metrics

`GET /test_framework/v2/metrics/`

## Request

- Base URL: `https://api.cekura.ai`
- URL: `https://api.cekura.ai/test_framework/v2/metrics/`
- Auth: one of:
  - API key in header `X-CEKURA-API-KEY`
  - HTTP bearer
  - HTTP bearer
  - HTTP bearer

List quality metrics. Filter by `project_id` or `agent_id` to scope results.

## Query parameters

- `agent_id` integer
- `project_id` integer
- `assistant_id` string
- `agents` string
- `slug` string
- `filters` object
- `include_scores` boolean

## Response `200`

- MetricListSerializerV2[]
  - `id` integer
  - `slug` string, nullable: URL-friendly unique identifier in snake_case format. Example: "customer_satisfaction_1562"
  - `project` integer, nullable
  - `agents` integer[]
  - `agent_names` string
  - `name` string, required: Name of the metric. Example: `"Customer Satisfaction"` or `"Appointment Booking"`
  - `description` string: Description of what the metric measures. Example: `"Measures how satisfied customers are with the service provided"`
  - `function_name` string, nullable: Predefined function name Example: `"get_latency"` or `"check_critical_deviations"`
  - `type` 'basic' | 'custom_prompt' | 'custom_code' | 'llm_judge': Type of metric * `basic` - Basic (Deprecated in favor of LLM Judge) * `custom_prompt` - Custom Prompt ( Deprecated in favor of LLM Judge) * `custom_code` - Custom Code * `llm_judge` - LLM Judge
  - `eval_type` 'binary' | 'continuous_qualitative' | 'numeric' | 'enum', required: * `binary` - Binary * `continuous_qualitative` - Continuous Qualitative * `numeric` - Numeric * `enum` - Enum
  - `enum_values` unknown
  - `audio_enabled` boolean: Whether this metric requires audio analysis. Example: `true` or `false`
  - `observability_enabled` boolean: Enable this metric for observability. Example: `true` or `false`
  - `simulation_enabled` boolean: Enable this metric for simulations. Example: `true` or `false`
  - `sampling_enabled` boolean: Enable sampling for this metric using its sample_rate, or the project sample rate when unset
  - `sample_rate` number, double, nullable: Sampling rate for this metric (0.0 to 1.0). Overrides the project sample rate when set.
  - `prompt` string: Evaluation prompt for the metric. Example: `"Evaluate customer satisfaction based on conversation"`
  - `display_order` integer: Display order for the metric. Example: `1`
  - `evaluation_trigger` 'always' | 'automatic' | 'custom': * `always` - Always * `automatic` - Automatic * `custom` - Custom
  - `trigger_type` 'llm_judge' | 'custom_code': * `llm_judge` - LLM Judge * `custom_code` - Custom Code
  - `evaluation_trigger_prompt` string: Evaluation trigger prompt for the metric. Example: `"Evaluate metric only if call ended reason is main-agent-ended-call"`
  - `evaluation_trigger_custom_code` string: Python custom code to determine metric relevance. Code should set _result (bool) and _explanation (str). Example: ```python _result = True _explanation = "Metric is relevant" if "call_end_reason" in data and data["call_end_reason"] == "customer-hung-up": _result = False _explanation = "Customer hung up, metric not applicable" ```
  - `priority_assignment_prompt` string: Priority assignment prompt for the metric.
  - `vocera_defined_metric_code` string: Vocera defined metric code for the metric. Example: `"7fd534f5"`
  - `configuration` unknown
  - `overall_score` string
  - `total_score` string
  - `kb_file_ids` integer[]: List of knowledge base file IDs for the metric. Example: `[123, 456]`
  - `knowledge_base_files` KnowledgeBaseFile[]
    - `id` integer
    - `agent` integer, required
    - `file` string, uri, required: Knowledge base file
    - `file_url` string: URL of the Knowledge file
    - `file_name` string: Name of the Knowledge file
    - `file_type` string: MIME type of the Knowledge file
    - `file_size` integer: Size in bytes. Example: `1048576`
    - `created_at` string, date-time: When this record was created. Example: `2024-03-15T10:30:45Z`
    - `updated_at` string, date-time: When this record was last updated. Example: `2024-03-15T10:35:11Z`
  - `scenarios` unknown
  - `custom_code` string
  - `metric_cost` number, double: Metric Cost Example: `0.10`
  - `alert_type` 'disabled' | 'normal' | 'significant_change': * `disabled` - Alerts Disabled * `normal` - Normal Alerts * `significant_change` - Significant Change Alerts
  - `significant_change_alert_status` 'enabled' | 'disabled': Alert status: enabled or disabled. * `enabled` - Enabled * `disabled` - Disabled
  - `significant_change_alert_direction` '' | 'increase' | 'decrease': Alert direction: increase only, decrease only, or both (empty = both). Example: `"increase"`, `"decrease"`, or `"both"` * `` - Both (Increase and Decrease) * `increase` - Increase Only * `decrease` - Decrease Only
  - `window_size` integer: Window size for rolling statistics calculation. Example: `50`
  - `std_multiplier` number, double: Standard deviation multiplier for threshold calculation. Example: `2.0`
  - `ewma_alpha` number, double: Alpha value for exponentially weighted moving average (EWMA) calculation. Example: `0.1`
  - `add_to_new_agents` boolean, nullable: When enabled, this metric is automatically assigned to new agents created in the project.
  - `alert_filters` unknown
  - `slack_workspace` integer, nullable: Slack workspace to send alerts to
  - `slack_channel_id` string, nullable: Override channel ID for this metric's alerts
  - `uses_llm_judge` string: Whether this metric produces an LLM-judge narrative: a `custom_code` metric whose code delegates to the LLM judge internally. Computed server-side because the `custom_code` body is write-only and not exposed on read. Example: `true`
  - `dependencies` MetricDependencyRef[]: Metrics whose results this metric reads, each with `source` = `declared` or `inferred`.
    - `id` integer, required
    - `name` string, required
    - `slug` string, nullable, required
    - `source` 'declared' | 'inferred', required: * `declared` - declared * `inferred` - inferred
  - `dependents` MetricDependencyRef[]: Metrics that read this metric's result.
    - `id` integer, required
    - `name` string, required
    - `slug` string, nullable, required
    - `source` 'declared' | 'inferred', required: * `declared` - declared * `inferred` - inferred

## Changes

- **2026-11-03** `a6fb6a739212`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/cekura/apis/cekura-api/changes/test_framework/v2/metrics/get.md)

---

[API](https://skmtc.dev/cekura/apis/cekura-api.md) - [All operations](https://skmtc.dev/cekura/apis/cekura-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cekura/apis/cekura-api/revisions/a6fb6a739212?raw)
