Skip to content
TriedDocs
Account

List QA cohort results

List the scored calls of a QA cohort.

GEThttps://api.tried.com.au/qa/cohorts/{id}/results

Returns every result in the cohort, newest call first. To keep the list small, call.transcript_with_tool_calls is always an empty array here; use Get QA result for the transcript.

Request#

Field Type Required Description
id string Yes QA cohort ID, for example qa_cohort_2c4e6a8b0d1f3e5a7c9b1d3f.

Example request#

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

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

Response#

200 OK

[
  {
    "qa_result_id": "qa_result_7a9c1e3b5d7f9a2c4e6b8d0f",
    "qa_cohort_id": "qa_cohort_2c4e6a8b0d1f3e5a7c9b1d3f",
    "call_id": "call_5e7a9c1b3d5f7e9a2c4b6d8f",
    "score": 50,
    "resolved": true,
    "override": null,
    "effective_resolved": true,
    "criteria": [
      {
        "name": "Confirms the booking",
        "passed": true,
        "explanation": "Every quoted phrase appears in the call."
      },
      {
        "name": "Offers a reminder",
        "passed": false,
        "explanation": "1 of 4 keywords found (appointment). Mock scorer passes at 50%."
      }
    ],
    "summary": "Mock QA: 1 of 2 criteria met.",
    "metrics": [
      {
        "metric": "latency",
        "value": 880,
        "score": 100,
        "passed": true,
        "details": {
          "e2e": {
            "p50": 880,
            "p90": 1240,
            "p95": 1240,
            "p99": 1240,
            "max": 1240,
            "min": 610,
            "num": 6,
            "values": [
              610,
              790,
              880,
              880,
              940,
              1240
            ]
          },
          "threshold": 60,
          "judge": "heuristic"
        }
      },
      {
        "metric": "sentiment",
        "value": 100,
        "score": 100,
        "passed": true,
        "details": {
          "user_sentiment": "Positive",
          "threshold": 60,
          "judge": "heuristic"
        }
      }
    ],
    "weighted_score": 80,
    "passed": true,
    "effective_passed": true,
    "wer_corrections": [],
    "questions": [
      "Do you have anything on Thursday afternoon?"
    ],
    "created_timestamp": 1792395060000,
    "call": {
      "call_id": "call_5e7a9c1b3d5f7e9a2c4b6d8f",
      "agent_id": "agent_4b7e2c9a1f3d5e8b0c6a2d1f",
      "agent_name": "Clinic receptionist",
      "call_type": "phone_call",
      "start_timestamp": 1792308600000,
      "duration_ms": 142000,
      "disconnection_reason": "user_hangup",
      "user_sentiment": "Positive",
      "call_successful": true,
      "e2e_p50": 880,
      "transcript_with_tool_calls": []
    }
  }
]

The response is a JSON array of results.

Field Type Description
qa_result_id string Result ID, prefixed qa_result_.
score number Percent of criteria passed, 0 to 100.
resolved boolean Whether the caller's issue was resolved: the judge's verdict, or in mock mode the call's success flag (score of 50 or more when there is none).
override string or null Human label: pass, fail or null. Set with Update QA result.
effective_resolved, effective_passed boolean resolved and passed with the override applied. effective_passed falls back to resolved when passed is null.
criteria object[] Per criterion: name, passed, explanation.
metrics object[] Per metric judge: metric, value, score (0 to 100, or null when not applicable), passed and details (includes the threshold used and judge: llm or heuristic).
weighted_score number or null Criteria (100 for pass, 0 for fail) and applicable metric scores, averaged by weight.
passed boolean or null weighted_score is at or above the cohort's pass_threshold.
wer_corrections object[] Human transcript corrections used for the wer metric.
questions string[] Up to 20 questions the user asked in the call.
call object or null Call summary: ID, agent, type, start time, duration, disconnection reason, sentiment, success, median end-to-end latency (e2e_p50, ms) and transcript_with_tool_calls. null if the call was deleted.

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.
404 No cohort with that ID in the workspace: QA cohort <id> not found.
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.