Chanl

Get Evaluation Results

Retrieve scorecard evaluation results for a specific call. Returns all evaluations performed on the call, or filter by specific scorecard.

Request
# Get all evaluations for a call
curl -X GET "https://api.chanl.ai/api/v1/scorecard-results/by-call/695d6957e21c0ceb325c394d" \
  -H "Authorization: Bearer <access_token>"

# Filter by specific scorecard
curl -X GET "https://api.chanl.ai/api/v1/scorecard-results/by-call/695d6957e21c0ceb325c394d?scorecardId=scorecard_abc123" \
  -H "Authorization: Bearer <access_token>"
// Get all evaluations
const response = await fetch(
  `https://api.chanl.ai/api/v1/scorecard-results/by-call/${callId}`,
  {
    headers: {
      'Authorization': 'Bearer ' + accessToken
    }
  }
);

const { data } = await response.json();
console.log('Results:', data.results);

// Filter by scorecard
const filtered = await fetch(
  `https://api.chanl.ai/api/v1/scorecard-results/by-call/${callId}?scorecardId=${scorecardId}`,
  {
    headers: {
      'Authorization': 'Bearer ' + accessToken
    }
  }
);
import requests

# Get all evaluations
response = requests.get(
    f'https://api.chanl.ai/api/v1/scorecard-results/by-call/{call_id}',
    headers={'Authorization': f'Bearer {access_token}'}
)

results = response.json()['data']['results']

# Filter by scorecard
response = requests.get(
    f'https://api.chanl.ai/api/v1/scorecard-results/by-call/{call_id}',
    headers={'Authorization': f'Bearer {access_token}'},
    params={'scorecardId': scorecard_id}
)
Response
{
  "success": true,
  "data": {
    "results": [
      {
        "id": "result_xyz789",
        "callId": "695d6957e21c0ceb325c394d",
        "scorecardId": "scorecard_abc123",
        "scorecardName": "Quality Scorecard",
        "score": 85,
        "status": "completed",
        "passed": true,
        "categoryScores": {
          "Communication": {
            "score": 90,
            "weight": 40
          },
          "Resolution": {
            "score": 80,
            "weight": 35
          },
          "Compliance": {
            "score": 85,
            "weight": 25
          }
        },
        "criteriaResults": [
          {
            "criterionId": "crit_greeting",
            "key": "proper_greeting",
            "name": "Proper Greeting",
            "categoryId": "cat_comm",
            "categoryName": "Communication",
            "type": "prompt",
            "passed": true,
            "score": 100,
            "evidence": "Agent said: 'Thank you for calling Acme Corp, this is Sarah speaking. How may I help you today?'",
            "llmAnalysis": {
              "summary": "The agent provided a professional greeting with company name and personal introduction.",
              "improvementSuggestions": []
            }
          },
          {
            "criterionId": "crit_solution",
            "key": "solution_provided",
            "name": "Solution Provided",
            "categoryId": "cat_resolution",
            "categoryName": "Resolution",
            "type": "prompt",
            "passed": true,
            "score": 80,
            "evidence": "Agent explained the refund process and provided a timeline of 3-5 business days.",
            "llmAnalysis": {
              "summary": "Agent provided a clear solution with timeline.",
              "improvementSuggestions": ["Could have offered expedited processing as an option"]
            }
          },
          {
            "criterionId": "crit_disclosure",
            "key": "disclosure_given",
            "name": "Disclosure Given",
            "categoryId": "cat_compliance",
            "categoryName": "Compliance",
            "type": "keyword",
            "passed": true,
            "score": 100,
            "evidence": "Found keyword match: 'this call may be recorded'",
            "matchedKeywords": ["this call may be recorded"]
          }
        ],
        "evaluatedAt": "2026-01-06T12:00:00Z",
        "version": 1
      }
    ],
    "pagination": {
      "total": 1,
      "page": 1,
      "limit": 20,
      "totalPages": 1
    }
  }
}
{
  "success": true,
  "data": {
    "results": [],
    "pagination": {
      "total": 0,
      "page": 1,
      "limit": 20,
      "totalPages": 0
    }
  }
}

Path Parameters

callIdstringrequired

The unique identifier of the call.

Query Parameters

scorecardIdstring

Filter results to a specific scorecard.

pageintegerdefault: 1

Page number (1-indexed).

limitintegerdefault: 20

Items per page (max 100).

Result Structure

Overall Result

FieldTypeDescription
idstringUnique result identifier
scorenumberOverall score (0-100)
statusstringcompleted, failed, pending
passedbooleanWhether score meets passing threshold
categoryScoresobjectScores by category
criteriaResultsarrayIndividual criterion results
evaluatedAtstringEvaluation timestamp
versionnumberScorecard version used

Category Score

FieldTypeDescription
scorenumberCategory score (0-100)
weightnumberCategory weight percentage

Criterion Result

FieldTypeDescription
criterionIdstringCriterion identifier
keystringCriterion key
namestringDisplay name
typestringCriterion type
passedbooleanWhether criterion passed
scorenumberCriterion score (0-100)
evidencestringSupporting evidence from transcript
llmAnalysisobjectLLM analysis details (prompt type)
matchedKeywordsarrayMatched keywords (keyword type)

LLM Analysis Object

For prompt type criteria:

{
  "llmAnalysis": {
    "summary": "Brief explanation of the evaluation",
    "improvementSuggestions": [
      "Suggestion for improvement",
      "Another suggestion"
    ]
  }
}

Multiple Evaluations

A call can be evaluated by multiple scorecards. Each evaluation creates a separate result:

{
  "results": [
    { "scorecardName": "Quality Scorecard", "score": 85 },
    { "scorecardName": "Compliance Scorecard", "score": 92 },
    { "scorecardName": "Sales Scorecard", "score": 78 }
  ]
}

Alternative Endpoints

Get Results by Scorecard

GET /api/v1/scorecard-results/by-scorecard/{scorecardId}

Get Single Result

GET /api/v1/scorecard-results/{resultId}

Use the externalReferenceIds on the call to correlate evaluation results with your internal systems. For example, link scores to specific orders or customer records.

On this page