Get a Scorecard
Retrieve detailed information about a specific scorecard including its categories and criteria.
Request
curl -X GET "https://api.chanl.ai/api/v1/scorecards/scorecard_abc123" \
-H "Authorization: Bearer <access_token>"const response = await fetch(`https://api.chanl.ai/api/v1/scorecards/${scorecardId}`, {
headers: {
'Authorization': 'Bearer ' + accessToken
}
});
const { data } = await response.json();
console.log('Scorecard:', data.name);
console.log('Categories:', data.categories);import requests
response = requests.get(
f'https://api.chanl.ai/api/v1/scorecards/{scorecard_id}',
headers={'Authorization': f'Bearer {access_token}'}
)
scorecard = response.json()['data']Response
{
"success": true,
"data": {
"id": "scorecard_abc123",
"name": "Quality Scorecard",
"description": "Evaluates agent performance and call quality",
"status": "active",
"version": 2,
"passingThreshold": 70,
"categories": [
{
"id": "cat_comm",
"name": "Communication",
"description": "Evaluates communication skills",
"weight": 40,
"criteria": [
{
"id": "crit_greeting",
"key": "proper_greeting",
"name": "Proper Greeting",
"type": "prompt",
"settings": {
"description": "Agent greeted the customer professionally with name and company"
},
"order": 1,
"isActive": true
},
{
"id": "crit_clarity",
"key": "clear_explanation",
"name": "Clear Explanation",
"type": "prompt",
"settings": {
"description": "Agent explained information clearly and concisely"
},
"order": 2,
"isActive": true
}
]
},
{
"id": "cat_resolution",
"name": "Resolution",
"description": "Evaluates problem resolution",
"weight": 35,
"criteria": [
{
"id": "crit_solution",
"key": "solution_provided",
"name": "Solution Provided",
"type": "prompt",
"settings": {
"description": "Agent provided a clear solution or next steps"
},
"order": 1,
"isActive": true
}
]
},
{
"id": "cat_compliance",
"name": "Compliance",
"description": "Evaluates regulatory compliance",
"weight": 25,
"criteria": [
{
"id": "crit_disclosure",
"key": "disclosure_given",
"name": "Disclosure Given",
"type": "keyword",
"settings": {
"matchType": "must_contain",
"keywords": ["this call may be recorded", "call is being recorded"]
},
"order": 1,
"isActive": true
}
]
}
],
"createdAt": "2026-01-01T00:00:00Z",
"updatedAt": "2026-01-05T12:00:00Z"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Scorecard not found"
}
}Path Parameters
idstringrequiredThe unique identifier of the scorecard.
Response Structure
Scorecard Object
| Field | Type | Description |
|---|---|---|
id | string | Unique scorecard identifier |
name | string | Scorecard name |
description | string | Scorecard description |
status | string | active, inactive, draft |
version | number | Version number |
passingThreshold | number | Minimum passing score |
categories | array | Categories with criteria |
createdAt | string | Creation timestamp |
updatedAt | string | Last update timestamp |
Category Object
| Field | Type | Description |
|---|---|---|
id | string | Category identifier |
name | string | Category name |
description | string | Category description |
weight | number | Weight percentage (all categories sum to 100) |
criteria | array | Criteria within this category |
Criteria Object
| Field | Type | Description |
|---|---|---|
id | string | Criteria identifier |
key | string | Unique key for the criterion |
name | string | Display name |
type | string | Evaluation type |
settings | object | Type-specific settings |
order | number | Display order |
isActive | boolean | Whether criterion is active |
Criteria Types Reference
Prompt Type
LLM evaluates based on description:
{
"type": "prompt",
"settings": {
"description": "Agent greeted customer with name and company"
}
}Keyword Type
Checks for specific words:
{
"type": "keyword",
"settings": {
"matchType": "must_contain",
"keywords": ["thank you", "thanks"]
}
}Response Time Type
Evaluates response latency:
{
"type": "response_time",
"settings": {
"maxMs": 3000
}
}