Teacher KPI
Teachers · 2 operations
GET
Get teacher KPI
/api/teacher/{id}/kpi-summaryKPI summary of one teacher for a period (view: month, quarter, year or all; date inside the period).
get_teacher_kpi
Path parameters · 1
id—Query parameters · 2
viewOne of: month quarter year alldefault alldateformat YYYY-MM-DDTHH:mm:ss · default {}Response · 200
application/json
statusCodeexample 200message—data2 fields
period4 fields
viewOne of: year month all quarterstartDateformat YYYY-MM-DDTHH:mm:ssendDateformat YYYY-MM-DDTHH:mm:ssmonths—cards8 fields
lessonsConducted3 fields
count—perMonth—plannedNext30d—trialConversion3 fields
conversionPct—purchased—trials—completionRate3 fields
pct—completed—planned—realization4 fields
total—perMonth—avgPerLesson—avgPer60min—ltLessonsPerStudent3 fields
value—qualifiedStudents—qualifiedLessons—ltvPerStudent3 fields
value—totalRealization—qualifiedStudents—schoolMargin5 fields
pct—marginAmount—realization—wages—bonuses—baseMovement5 fields
active—paused—inCirculation—arrived—left—curl "https://your-school.rist.pro/api/teacher/1/kpi-summary?view=all&date=%5Bobject%20Object%5D" \
-H "Authorization: Bearer $RIST_API_KEY"const response = await fetch("https://your-school.rist.pro/api/teacher/1/kpi-summary?view=all&date=%5Bobject%20Object%5D", {
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
},
});
const { data } = await response.json();import os
import requests
response = requests.get(
"https://your-school.rist.pro/api/teacher/1/kpi-summary",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
params={
"view": "all",
"date": {}
},
)
response.raise_for_status()
data = response.json()["data"]Response example · 200
{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"period": {
"view": "year",
"startDate": "2026-11-09T14:30:00",
"endDate": "2026-11-09T14:30:00",
"months": 0
},
"cards": {
"lessonsConducted": {
"count": 0,
"perMonth": 0,
"plannedNext30d": 0
},
"trialConversion": {
"conversionPct": 0,
"purchased": 0,
"trials": 0
},
"completionRate": {
"pct": 0,
"completed": 0,
"planned": 0
},
"realization": {
"total": 0,
"perMonth": 0,
"avgPerLesson": 0,
"avgPer60min": 0
},
"ltLessonsPerStudent": {
"value": 0,
"qualifiedStudents": 0,
"qualifiedLessons": 0
},
"ltvPerStudent": {
"value": 0,
"totalRealization": 0,
"qualifiedStudents": 0
},
"schoolMargin": {
"pct": 0,
"marginAmount": 0,
"realization": 0,
"wages": 0,
"bonuses": 0
},
"baseMovement": {
"active": 0,
"paused": 0,
"inCirculation": 0,
"arrived": 0,
"left": 0
}
}
}
}GET
Get teacher KPI details
/api/teacher/{id}/kpi/{metric}/detailsRows behind one KPI tile of a teacher for the same period as GET /api/teacher/{id}/kpi-summary. metric is one of: lessons-conducted, trial-conversion, completion-rate, realization, lt, ltv, margin, base-movement.
get_teacher_kpi_details
Path parameters · 2
id—metric—Query parameters · 2
viewOne of: month quarter year alldefault alldateformat YYYY-MM-DDTHH:mm:ss · default {}Response · 200
application/json
curl "https://your-school.rist.pro/api/teacher/1/kpi/string/details?view=all&date=%5Bobject%20Object%5D" \
-H "Authorization: Bearer $RIST_API_KEY"const response = await fetch("https://your-school.rist.pro/api/teacher/1/kpi/string/details?view=all&date=%5Bobject%20Object%5D", {
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
},
});
const { data } = await response.json();import os
import requests
response = requests.get(
"https://your-school.rist.pro/api/teacher/1/kpi/string/details",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
params={
"view": "all",
"date": {}
},
)
response.raise_for_status()
data = response.json()["data"]Response example · 200
{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {}
}