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.