Reports
Reports · 5 операцій
Lead sources report
/api/report/source-of-leadLeads, average first payment and revenue by lead source group and source, for leads created between startDate and endDate.
report_lead_sources
Параметри запиту · 2
startDate—endDateInclusive: a bare date means the end of that school day.Відповідь · 200
application/json
statusCodeприклад 200message—data4 поля
results—totalLeads—totalFirstPayment—totalRevenue—curl "https://your-school.rist.pro/api/report/source-of-lead?startDate=string&endDate=string" \
-H "Authorization: Bearer $RIST_API_KEY"const response = await fetch("https://your-school.rist.pro/api/report/source-of-lead?startDate=string&endDate=string", {
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/report/source-of-lead",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
params={
"startDate": "string",
"endDate": "string"
},
)
response.raise_for_status()
data = response.json()["data"]{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"results": [
{}
],
"totalLeads": 0,
"totalFirstPayment": 0,
"totalRevenue": 0
}
}Lifetime value report
/api/report/life-time-valuePer student lesson count, payment count and lifetime value (LTV) between startDate and endDate, with totals and average check.
report_lifetime_value
Параметри запиту · 2
startDate—endDateInclusive: a bare date means the end of that school day.Відповідь · 200
application/json
statusCodeприклад 200message—data5 полів
students6 полів
studentId—firstName—lastName—lessonCount—paymentCount—lifeTimeValue—totalLessonCount—totalPayments—lifeTimeValueSum—averageCheck—curl "https://your-school.rist.pro/api/report/life-time-value?startDate=string&endDate=string" \
-H "Authorization: Bearer $RIST_API_KEY"const response = await fetch("https://your-school.rist.pro/api/report/life-time-value?startDate=string&endDate=string", {
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/report/life-time-value",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
params={
"startDate": "string",
"endDate": "string"
},
)
response.raise_for_status()
data = response.json()["data"]{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"students": [
{
"studentId": 1,
"firstName": "string",
"lastName": "string",
"lessonCount": 0,
"paymentCount": 0,
"lifeTimeValue": 0
}
],
"totalLessonCount": 0,
"totalPayments": 0,
"lifeTimeValueSum": 0,
"averageCheck": 0
}
}Trial balance report
/api/report/trail-balanceFinance operations with income and expense amounts between startDate and endDate (optional accountIds, typesOfOperation), with total income, expenses and balance.
report_trial_balance
Параметри запиту · 4
startDate—endDateInclusive: a bare date means the end of that school day.accountIds—typesOfOperationОдне з: INCOME TRANSFER ADJUSTMENT EXPENSES REFUND ACCOUNT_TRANSFERВідповідь · 200
application/json
statusCodeприклад 200message—data4 поля
results6 полів
financeOperationId—dateOfOperationформат YYYY-MM-DDTHH:mm:sstypeOfOperationОдне з: INCOME TRANSFER ADJUSTMENT EXPENSES REFUND ACCOUNT_TRANSFERcustomer3 поля
customerId—firstName—lastName—income—expenses—totalIncome—totalExpenses—balance—curl "https://your-school.rist.pro/api/report/trail-balance?startDate=string&endDate=string" \
-H "Authorization: Bearer $RIST_API_KEY"const response = await fetch("https://your-school.rist.pro/api/report/trail-balance?startDate=string&endDate=string", {
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/report/trail-balance",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
params={
"startDate": "string",
"endDate": "string"
},
)
response.raise_for_status()
data = response.json()["data"]{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"results": [
{
"financeOperationId": 1,
"dateOfOperation": "2026-11-09T14:30:00",
"typeOfOperation": "INCOME",
"customer": {
"customerId": 1,
"firstName": "string",
"lastName": "string"
},
"income": 0,
"expenses": 0
}
],
"totalIncome": 0,
"totalExpenses": 0,
"balance": 0
}
}Realization revenue report
/api/report/revenue-of-realizationRevenue of conducted lessons between startDate and endDate by teacher, location or room (by), optionally only present or absent students.
report_realization_revenue
Параметри запиту · 5
startDate—endDateInclusive: a bare date means the end of that school day.byОдне з: teacher location audienceза замовчуванням teacherpresence—reasonOfMissingIds—Відповідь · 200
application/json
statusCodeприклад 200message—data4 поля
groupByОдне з: teacher location audienceresults5 полів
id—firstName—lastName—countOfLesson—revenue—totalCountOfLesson—totalRevenue—curl "https://your-school.rist.pro/api/report/revenue-of-realization?startDate=string&endDate=string&by=teacher" \
-H "Authorization: Bearer $RIST_API_KEY"const response = await fetch("https://your-school.rist.pro/api/report/revenue-of-realization?startDate=string&endDate=string&by=teacher", {
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/report/revenue-of-realization",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
params={
"startDate": "string",
"endDate": "string",
"by": "teacher"
},
)
response.raise_for_status()
data = response.json()["data"]{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"groupBy": "teacher",
"results": [
{
"id": 1,
"firstName": "string",
"lastName": "string",
"countOfLesson": 0,
"revenue": 0
}
],
"totalCountOfLesson": 0,
"totalRevenue": 0
}
}Salary statement report
/api/report/salary-statementTeacher wage and bonus accruals between startDate and endDate, grouped by wage, subject, lesson type and student count, with per-teacher totals (optional teacherId, subjectIds, typeOfLessonIds, includeBonuses, includeScheduled for a forecast of scheduled lessons). Needs permission to see teacher wages too; names and prices hidden from the role come back as null.
report_salary_statement
Параметри запиту · 9
startDate—endDateInclusive: a bare date means the end of that school day.teacherId—subjectIds—typeOfLessonIds—includeBonusesза замовчуванням trueincludeScheduledза замовчуванням falsepage—pageSize—Відповідь · 200
application/json
statusCodeприклад 200message—data4 поля
results10 полів
teacherId—firstName—lastName—wages12 полів
wageId—nameOfWagenull when the role cannot see the wage name.nameOfSubject—nameOfType—countOfStudents—durationOfLesson—amountnull unless the role sees both the fixed amount and the tiers of the wage price.amountTypeWith PERCENT, amount is a percent of the amount charged to students, not a per-lesson sum.Одне з: PERCENT FIXEDcountOfLesson—sumOfSalary—isForecast—isCanceledRow of canceled lessons, paid at the wage's canceled-lesson price.bonuses5 полів
bonusId—nameOfBonusnull when the role cannot see the bonus name.countOfLesson—amountPerLessonnull when the role cannot see bonus tiers.sumOfBonus—totalCountOfStudents—totalDurationOfLesson—totalCountOfLesson—totalSumOfSalary—totalSumOfBonus—total—currentPage—totalPages—curl "https://your-school.rist.pro/api/report/salary-statement?startDate=string&endDate=string&includeBonuses=true&includeScheduled=false" \
-H "Authorization: Bearer $RIST_API_KEY"const response = await fetch("https://your-school.rist.pro/api/report/salary-statement?startDate=string&endDate=string&includeBonuses=true&includeScheduled=false", {
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/report/salary-statement",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
params={
"startDate": "string",
"endDate": "string",
"includeBonuses": True,
"includeScheduled": False
},
)
response.raise_for_status()
data = response.json()["data"]{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"results": [
{
"teacherId": 1,
"firstName": "string",
"lastName": "string",
"wages": [
{
"wageId": 1,
"nameOfWage": "string",
"nameOfSubject": "string",
"nameOfType": "string",
"countOfStudents": 0,
"durationOfLesson": 0,
"amount": 0,
"amountType": "PERCENT",
"countOfLesson": 0,
"sumOfSalary": 0,
"isForecast": false,
"isCanceled": false
}
],
"bonuses": [
{
"bonusId": 1,
"nameOfBonus": "string",
"countOfLesson": 0,
"amountPerLesson": 0,
"sumOfBonus": 0
}
],
"totalCountOfStudents": 0,
"totalDurationOfLesson": 0,
"totalCountOfLesson": 0,
"totalSumOfSalary": 0,
"totalSumOfBonus": 0
}
],
"total": 0,
"currentPage": 0,
"totalPages": 0
}
}