Groups
Learning · 4 операції
GET
List groups
/api/groupStudy groups with filters and pagination. studentsCount is the number of active students; studentsCountFrom/studentsCountTo filter by it (empty groups count as 0).
list_groups
Параметри запиту · 23
pageмін. 1 · за замовчуванням 1pageSize1–250 · за замовчуванням 20sortByОдне з: status nameOfGroup teacher levelOfKnowledgesortOrderОдне з: ASC DESCgroupIds—statusOfGroupId—statusOfGroupIds—nameOfGroupдовжина макс. 150Показати ще 15
description—teacherId—teacherIds—levelOfKnowledgeId—levelOfKnowledgeIds—classOfStudentIds—subjectIds—typeOfLessonIds—dateStartформат YYYY-MM-DDTHH:mm:ssdateEndформат YYYY-MM-DDTHH:mm:ssnote—isArchivalза замовчуванням falsestudentsCountFromAt least this many active students.studentsCountToAt most this many active students; empty groups included.cf—Відповідь · 200
application/json
statusCodeприклад 200message—data4 поля
total—totalPages—currentPage—groups14 полів
groupId—nameOfGroup—description—limitOfStudents—dateStartформат YYYY-MM-DDTHH:mm:ssdateEndформат YYYY-MM-DDTHH:mm:ssnote—avatarUrl—isArchival—updatedAtформат YYYY-MM-DDTHH:mm:sscreatedAtформат YYYY-MM-DDTHH:mm:ssregularLessons3 поля
dayOfWeek—timeStart—timeEnd—studentsCountActive students; absent when the role cannot see group students.customFieldsCustom field values; the table row shows the columns chosen in the preset.довільні ключіcurl "https://your-school.rist.pro/api/group" \
-H "Authorization: Bearer $RIST_API_KEY"const response = await fetch("https://your-school.rist.pro/api/group", {
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/group",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
)
response.raise_for_status()
data = response.json()["data"]Приклад відповіді · 200
{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"total": 0,
"totalPages": 0,
"currentPage": 0,
"groups": [
{
"groupId": 1,
"nameOfGroup": "string",
"description": "string",
"limitOfStudents": 0,
"dateStart": "2026-11-09T14:30:00",
"dateEnd": "2026-11-09T14:30:00",
"note": "string",
"avatarUrl": "string",
"isArchival": false,
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00",
"regularLessons": [
{
"dayOfWeek": 0,
"timeStart": "string",
"timeEnd": "string"
}
],
"studentsCount": 0,
"customFields": {}
}
]
}
}GET
Get group
/api/group/{id}One study group with its students and teachers.
get_group
Параметри шляху · 1
id—Відповідь · 200
application/json
statusCodeприклад 200message—data12 полів
groupId—nameOfGroup—description—limitOfStudents—dateStartформат YYYY-MM-DDTHH:mm:ssdateEndформат YYYY-MM-DDTHH:mm:ssnote—avatarUrl—isArchival—updatedAtформат YYYY-MM-DDTHH:mm:sscreatedAtформат YYYY-MM-DDTHH:mm:sscustomFieldsдовільні ключіcurl "https://your-school.rist.pro/api/group/1" \
-H "Authorization: Bearer $RIST_API_KEY"const response = await fetch("https://your-school.rist.pro/api/group/1", {
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/group/1",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
)
response.raise_for_status()
data = response.json()["data"]Приклад відповіді · 200
{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"groupId": 1,
"nameOfGroup": "string",
"description": "string",
"limitOfStudents": 0,
"dateStart": "2026-11-09T14:30:00",
"dateEnd": "2026-11-09T14:30:00",
"note": "string",
"avatarUrl": "string",
"isArchival": false,
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00",
"customFields": {}
}
}POST
Create group
/api/groupCreate a study group with teachers, subjects, lesson types, level and dates.
create_group
Тіло запиту
application/json · object
nameOfGroupдовжина 1–150descriptionдовжина макс. 100limitOfStudentsмін. 1dateStart—dateEnd—noteдовжина макс. 1500statusOfGroupIdмін. 1teacherIdsмін. 1levelOfKnowledgeIdмін. 1classOfStudentIdsмін. 1subjectIdsмін. 1typeOfLessonIdsмін. 1customFieldsдовільні ключіВідповідь · 201
application/json
statusCodeприклад 201message—data14 полів
groupId—nameOfGroup—description—limitOfStudents—dateStartформат YYYY-MM-DDTHH:mm:ssdateEndформат YYYY-MM-DDTHH:mm:ssnote—avatarUrl—isArchival—updatedAtформат YYYY-MM-DDTHH:mm:sscreatedAtформат YYYY-MM-DDTHH:mm:ssregularLessons3 поля
dayOfWeek—timeStart—timeEnd—studentsCountActive students; absent when the role cannot see group students.customFieldsCustom field values; the table row shows the columns chosen in the preset.довільні ключіcurl -X POST "https://your-school.rist.pro/api/group" \
-H "Authorization: Bearer $RIST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"nameOfGroup": "string",
"description": "string",
"limitOfStudents": 1,
"dateStart": "string",
"dateEnd": "string",
"note": "string",
"statusOfGroupId": 1,
"teacherIds": [
1
],
"levelOfKnowledgeId": 1,
"classOfStudentIds": [
1
],
"subjectIds": [
1
],
"typeOfLessonIds": [
1
],
"customFields": {}
}'const response = await fetch("https://your-school.rist.pro/api/group", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"nameOfGroup": "string",
"description": "string",
"limitOfStudents": 1,
"dateStart": "string",
"dateEnd": "string",
"note": "string",
"statusOfGroupId": 1,
"teacherIds": [
1
],
"levelOfKnowledgeId": 1,
"classOfStudentIds": [
1
],
"subjectIds": [
1
],
"typeOfLessonIds": [
1
],
"customFields": {}
}),
});
const { data } = await response.json();import os
import requests
response = requests.post(
"https://your-school.rist.pro/api/group",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
json={
"nameOfGroup": "string",
"description": "string",
"limitOfStudents": 1,
"dateStart": "string",
"dateEnd": "string",
"note": "string",
"statusOfGroupId": 1,
"teacherIds": [
1
],
"levelOfKnowledgeId": 1,
"classOfStudentIds": [
1
],
"subjectIds": [
1
],
"typeOfLessonIds": [
1
],
"customFields": {}
},
)
response.raise_for_status()
data = response.json()["data"]Приклад відповіді · 201
{
"statusCode": 201,
"message": "Operation completed successfully",
"data": {
"groupId": 1,
"nameOfGroup": "string",
"description": "string",
"limitOfStudents": 0,
"dateStart": "2026-11-09T14:30:00",
"dateEnd": "2026-11-09T14:30:00",
"note": "string",
"avatarUrl": "string",
"isArchival": false,
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00",
"regularLessons": [
{
"dayOfWeek": 0,
"timeStart": "string",
"timeEnd": "string"
}
],
"studentsCount": 0,
"customFields": {}
}
}PATCH
Update group
/api/group/{id}Change fields of a study group. Send only the fields to change; list fields replace the whole list.
update_group
Параметри шляху · 1
id—Тіло запиту
application/json · object
nameOfGroupдовжина 1–150descriptionдовжина макс. 100limitOfStudentsмін. 1dateStart—dateEnd—noteдовжина макс. 1500statusOfGroupIdмін. 1teacherIdsмін. 1levelOfKnowledgeIdмін. 1classOfStudentIdsмін. 1subjectIdsмін. 1typeOfLessonIdsмін. 1customFieldsдовільні ключіВідповідь · 200
application/json
statusCodeприклад 200message—data14 полів
groupId—nameOfGroup—description—limitOfStudents—dateStartформат YYYY-MM-DDTHH:mm:ssdateEndформат YYYY-MM-DDTHH:mm:ssnote—avatarUrl—isArchival—updatedAtформат YYYY-MM-DDTHH:mm:sscreatedAtформат YYYY-MM-DDTHH:mm:ssregularLessons3 поля
dayOfWeek—timeStart—timeEnd—studentsCountActive students; absent when the role cannot see group students.customFieldsCustom field values; the table row shows the columns chosen in the preset.довільні ключіcurl -X PATCH "https://your-school.rist.pro/api/group/1" \
-H "Authorization: Bearer $RIST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"nameOfGroup": "string",
"description": "string",
"limitOfStudents": 1,
"dateStart": "string",
"dateEnd": "string",
"note": "string",
"statusOfGroupId": 1,
"teacherIds": [
1
],
"levelOfKnowledgeId": 1,
"classOfStudentIds": [
1
],
"subjectIds": [
1
],
"typeOfLessonIds": [
1
],
"customFields": {}
}'const response = await fetch("https://your-school.rist.pro/api/group/1", {
method: "PATCH",
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"nameOfGroup": "string",
"description": "string",
"limitOfStudents": 1,
"dateStart": "string",
"dateEnd": "string",
"note": "string",
"statusOfGroupId": 1,
"teacherIds": [
1
],
"levelOfKnowledgeId": 1,
"classOfStudentIds": [
1
],
"subjectIds": [
1
],
"typeOfLessonIds": [
1
],
"customFields": {}
}),
});
const { data } = await response.json();import os
import requests
response = requests.patch(
"https://your-school.rist.pro/api/group/1",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
json={
"nameOfGroup": "string",
"description": "string",
"limitOfStudents": 1,
"dateStart": "string",
"dateEnd": "string",
"note": "string",
"statusOfGroupId": 1,
"teacherIds": [
1
],
"levelOfKnowledgeId": 1,
"classOfStudentIds": [
1
],
"subjectIds": [
1
],
"typeOfLessonIds": [
1
],
"customFields": {}
},
)
response.raise_for_status()
data = response.json()["data"]Приклад відповіді · 200
{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"groupId": 1,
"nameOfGroup": "string",
"description": "string",
"limitOfStudents": 0,
"dateStart": "2026-11-09T14:30:00",
"dateEnd": "2026-11-09T14:30:00",
"note": "string",
"avatarUrl": "string",
"isArchival": false,
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00",
"regularLessons": [
{
"dayOfWeek": 0,
"timeStart": "string",
"timeEnd": "string"
}
],
"studentsCount": 0,
"customFields": {}
}
}