ReportsReports

Reports

Reports · 5 operations

GET

Lead sources report

/api/report/source-of-lead

Leads, average first payment and revenue by lead source group and source, for leads created between startDate and endDate.

report_lead_sources

Query parameters · 2

startDatestringrequired—
endDatestringrequiredInclusive: a bare date means the end of that school day.

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataobject4 fields
resultsobject[]required—
totalLeadsnumberrequired—
totalFirstPaymentnumberrequired—
totalRevenuenumberrequired—
Errors400401403429500
curl "https://your-school.rist.pro/api/report/source-of-lead?startDate=string&endDate=string" \
  -H "Authorization: Bearer $RIST_API_KEY"
Response example · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": {
    "results": [
      {}
    ],
    "totalLeads": 0,
    "totalFirstPayment": 0,
    "totalRevenue": 0
  }
}
GET

Lifetime value report

/api/report/life-time-value

Per student lesson count, payment count and lifetime value (LTV) between startDate and endDate, with totals and average check.

report_lifetime_value

Query parameters · 2

startDatestringrequired—
endDatestringrequiredInclusive: a bare date means the end of that school day.

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataobject5 fields
studentsobject[]required6 fields
studentIdnumberrequired—
firstNamestringrequired—
lastNamestringrequirednullable—
lessonCountnumberrequired—
paymentCountnumberrequired—
lifeTimeValuenumberrequired—
totalLessonCountnumberrequired—
totalPaymentsnumberrequired—
lifeTimeValueSumnumberrequired—
averageChecknumberrequired—
Errors400401403429500
curl "https://your-school.rist.pro/api/report/life-time-value?startDate=string&endDate=string" \
  -H "Authorization: Bearer $RIST_API_KEY"
Response example · 200
{
  "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
  }
}
GET

Trial balance report

/api/report/trail-balance

Finance operations with income and expense amounts between startDate and endDate (optional accountIds, typesOfOperation), with total income, expenses and balance.

report_trial_balance

Query parameters · 4

startDatestringrequired—
endDatestringrequiredInclusive: a bare date means the end of that school day.
accountIdsnumber[]—
typesOfOperationstring[]One of: INCOME TRANSFER ADJUSTMENT EXPENSES REFUND ACCOUNT_TRANSFER

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataobject4 fields
resultsobject[]required6 fields
financeOperationIdnumberrequired—
dateOfOperationstringrequirednullableformat YYYY-MM-DDTHH:mm:ss
typeOfOperationstringrequiredOne of: INCOME TRANSFER ADJUSTMENT EXPENSES REFUND ACCOUNT_TRANSFER
customerobjectrequirednullable3 fields
customerIdnumberrequired—
firstNamestringrequired—
lastNamestringrequirednullable—
incomenumberrequired—
expensesnumberrequired—
totalIncomenumberrequired—
totalExpensesnumberrequired—
balancenumberrequired—
Errors400401403429500
curl "https://your-school.rist.pro/api/report/trail-balance?startDate=string&endDate=string" \
  -H "Authorization: Bearer $RIST_API_KEY"
Response example · 200
{
  "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
  }
}
GET

Realization revenue report

/api/report/revenue-of-realization

Revenue of conducted lessons between startDate and endDate by teacher, location or room (by), optionally only present or absent students.

report_realization_revenue

Query parameters · 5

startDatestringrequired—
endDatestringrequiredInclusive: a bare date means the end of that school day.
bystringrequiredOne of: teacher location audiencedefault teacher
presenceboolean—
reasonOfMissingIdsnumber[]—

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataobject4 fields
groupBystringrequiredOne of: teacher location audience
resultsobject[]required5 fields
idnumberrequired—
firstNamestringrequired—
lastNamestringnullable—
countOfLessonnumberrequired—
revenuenumberrequired—
totalCountOfLessonnumberrequired—
totalRevenuenumberrequired—
Errors400401403429500
curl "https://your-school.rist.pro/api/report/revenue-of-realization?startDate=string&endDate=string&by=teacher" \
  -H "Authorization: Bearer $RIST_API_KEY"
Response example · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": {
    "groupBy": "teacher",
    "results": [
      {
        "id": 1,
        "firstName": "string",
        "lastName": "string",
        "countOfLesson": 0,
        "revenue": 0
      }
    ],
    "totalCountOfLesson": 0,
    "totalRevenue": 0
  }
}
GET

Salary statement report

/api/report/salary-statement

Teacher 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

Query parameters · 9

startDatestringrequired—
endDatestringrequiredInclusive: a bare date means the end of that school day.
teacherIdnumber—
subjectIdsnumber[]—
typeOfLessonIdsnumber[]—
includeBonusesobjectrequireddefault true
includeScheduledobjectrequireddefault false
pagenumber—
pageSizenumber—

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataobject4 fields
resultsobject[]required10 fields
teacherIdnumberrequired—
firstNamestringrequired—
lastNamestringrequirednullable—
wagesobject[]required12 fields
wageIdnumberrequired—
nameOfWagestringrequirednullablenull when the role cannot see the wage name.
nameOfSubjectstringrequired—
nameOfTypestringrequired—
countOfStudentsnumberrequired—
durationOfLessonnumberrequired—
amountnumberrequirednullablenull unless the role sees both the fixed amount and the tiers of the wage price.
amountTypestringrequirednullableWith PERCENT, amount is a percent of the amount charged to students, not a per-lesson sum.One of: PERCENT FIXED
countOfLessonnumberrequired—
sumOfSalarynumberrequired—
isForecastbooleanrequired—
isCanceledbooleanrequiredRow of canceled lessons, paid at the wage's canceled-lesson price.
bonusesobject[]required5 fields
bonusIdnumberrequired—
nameOfBonusstringrequirednullablenull when the role cannot see the bonus name.
countOfLessonnumberrequired—
amountPerLessonnumberrequirednullablenull when the role cannot see bonus tiers.
sumOfBonusnumberrequired—
totalCountOfStudentsnumberrequired—
totalDurationOfLessonnumberrequired—
totalCountOfLessonnumberrequired—
totalSumOfSalarynumberrequired—
totalSumOfBonusnumberrequired—
totalnumberrequired—
currentPagenumberrequired—
totalPagesnumberrequired—
Errors400401403429500
curl "https://your-school.rist.pro/api/report/salary-statement?startDate=string&endDate=string&includeBonuses=true&includeScheduled=false" \
  -H "Authorization: Bearer $RIST_API_KEY"
Response example · 200
{
  "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
  }
}