Skip to content
TriedDocs
Account

List QA metrics

List the QA metric judges, their default thresholds, the extraction filter operators and QA pricing.

GEThttps://api.tried.com.au/qa/metrics

Needs keys Returns the catalog you need to build a cohort's metrics and extraction_filters. Each metric scores a call from 0 to 100 and passes at its threshold.

Request#

This endpoint takes no path, query or body parameters.

Example request#

curl https://api.tried.com.au/qa/metrics \
  -H "Authorization: Bearer $TRIED_API_KEY"
const res = await fetch("https://api.tried.com.au/qa/metrics", {
  headers: { Authorization: `Bearer ${process.env.TRIED_API_KEY}` },
});
const catalog = await res.json();
import os, requests

res = requests.get(
    "https://api.tried.com.au/qa/metrics",
    headers={"Authorization": f"Bearer {os.environ['TRIED_API_KEY']}"},
)
catalog = res.json()

Response#

200 OK

{
  "metrics": [
    {
      "metric": "hallucination",
      "default_threshold": 70
    },
    {
      "metric": "kb_recall",
      "default_threshold": 60
    },
    {
      "metric": "wer",
      "default_threshold": 80
    },
    {
      "metric": "overlapping_speech",
      "default_threshold": 70
    },
    {
      "metric": "sentiment",
      "default_threshold": 50
    },
    {
      "metric": "naturalness",
      "default_threshold": 60
    },
    {
      "metric": "tool_call_accuracy",
      "default_threshold": 80
    },
    {
      "metric": "transition_accuracy",
      "default_threshold": 80
    },
    {
      "metric": "transfer_success",
      "default_threshold": 100
    },
    {
      "metric": "transfer_wait_time",
      "default_threshold": 50
    },
    {
      "metric": "latency",
      "default_threshold": 60
    }
  ],
  "extraction_filter_ops": [
    "eq",
    "neq",
    "contains",
    "not_contains",
    "gt",
    "gte",
    "lt",
    "lte",
    "exists",
    "not_exists",
    "in"
  ],
  "pricing": {
    "free_minutes_per_month": 100,
    "price_per_minute": 0.15
  }
}

Metrics that read the transcript (hallucination, kb_recall, naturalness, tool_call_accuracy, transition_accuracy) are judged by OpenAI when a key is set and by deterministic heuristics otherwise, or when the model call fails. wer, overlapping_speech, sentiment, transfer_success, transfer_wait_time and latency are always computed from call data. A metric that does not apply to a call (for example kb_recall with no knowledge base lookups) gets a null score and is left out of the weighted score.

Field Type Description
metrics[].default_threshold number Score needed to pass when the cohort does not set threshold.
extraction_filter_ops string[] Operators for extraction_filters[].op.
pricing.free_minutes_per_month integer Free scored minutes per calendar month (UTC).
pricing.price_per_minute number AUD per scored minute after the free minutes.

Errors#

Status When
401 Missing or invalid API key.
403 The key's IP allowlist or scopes reject the request. This route needs the analytics scope.
429 Rate limit exceeded. See Rate limits.

See Errors for the body format.

Retell compatibility#

Retell's public API reference has no AI QA endpoints, so this route has no Retell SDK equivalent.