Group comments
Learning · 3 operations
GET
List group comments
/api/group/comment/{id}Comments left by staff on a study group, newest first.
list_group_comments
Path parameters · 1
id—Response · 200
application/json
statusCodeexample 200message—data11 fields
commentId—studentId—teacherId—groupId—customerId—text—userComment author: a user or an automation rule; exactly one is set.5 fields
id—firstName—lastName—middleName—isArchival—automation2 fields
automationId—name—files5 fields
storageFileId—keySigned through GET /storage/presigned-url, under the comment section's rights.name—mimeType—size—updatedAtformat YYYY-MM-DDTHH:mm:sscreatedAtformat YYYY-MM-DDTHH:mm:sscurl "https://your-school.rist.pro/api/group/comment/1" \
-H "Authorization: Bearer $RIST_API_KEY"const response = await fetch("https://your-school.rist.pro/api/group/comment/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/comment/1",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
)
response.raise_for_status()
data = response.json()["data"]Response example · 200
{
"statusCode": 200,
"message": "Operation completed successfully",
"data": [
{
"commentId": 1,
"studentId": 1,
"teacherId": 1,
"groupId": 1,
"customerId": 1,
"text": "string",
"user": {
"id": 1,
"firstName": "string",
"lastName": "string",
"middleName": "string",
"isArchival": false
},
"automation": {
"automationId": 1,
"name": "string"
},
"files": [
{
"storageFileId": 1,
"key": "string",
"name": "string",
"mimeType": "string",
"size": 0
}
],
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00"
}
]
}POST
Add comment to group
/api/group/commentAdd a staff comment to a study group (pass groupId and text).
create_group_comment
Request body
application/json · object
studentIdmin 1teacherIdmin 1groupIdmin 1customerIdmin 1textMissing for a comment of files only: the global pipe turns empty text into null.length max 3000Response · 201
application/json
statusCodeexample 201message—data11 fields
commentId—studentId—teacherId—groupId—customerId—text—userComment author: a user or an automation rule; exactly one is set.5 fields
id—firstName—lastName—middleName—isArchival—automation2 fields
automationId—name—files5 fields
storageFileId—keySigned through GET /storage/presigned-url, under the comment section's rights.name—mimeType—size—updatedAtformat YYYY-MM-DDTHH:mm:sscreatedAtformat YYYY-MM-DDTHH:mm:sscurl -X POST "https://your-school.rist.pro/api/group/comment" \
-H "Authorization: Bearer $RIST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"studentId": 1,
"teacherId": 1,
"groupId": 1,
"customerId": 1,
"text": "string"
}'const response = await fetch("https://your-school.rist.pro/api/group/comment", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"studentId": 1,
"teacherId": 1,
"groupId": 1,
"customerId": 1,
"text": "string"
}),
});
const { data } = await response.json();import os
import requests
response = requests.post(
"https://your-school.rist.pro/api/group/comment",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
json={
"studentId": 1,
"teacherId": 1,
"groupId": 1,
"customerId": 1,
"text": "string"
},
)
response.raise_for_status()
data = response.json()["data"]Response example · 201
{
"statusCode": 201,
"message": "Operation completed successfully",
"data": {
"commentId": 1,
"studentId": 1,
"teacherId": 1,
"groupId": 1,
"customerId": 1,
"text": "string",
"user": {
"id": 1,
"firstName": "string",
"lastName": "string",
"middleName": "string",
"isArchival": false
},
"automation": {
"automationId": 1,
"name": "string"
},
"files": [
{
"storageFileId": 1,
"key": "string",
"name": "string",
"mimeType": "string",
"size": 0
}
],
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00"
}
}PUT
Edit group comment
/api/group/comment/{id}Replace the text of a group comment. The path id is the comment id (from GET /api/group/comment/{id}), not the group id.
update_group_comment
Path parameters · 1
id—Request body
application/json · object
textlength max 3000Response · 200
application/json
statusCodeexample 200message—data11 fields
commentId—studentId—teacherId—groupId—customerId—text—userComment author: a user or an automation rule; exactly one is set.5 fields
id—firstName—lastName—middleName—isArchival—automation2 fields
automationId—name—files5 fields
storageFileId—keySigned through GET /storage/presigned-url, under the comment section's rights.name—mimeType—size—updatedAtformat YYYY-MM-DDTHH:mm:sscreatedAtformat YYYY-MM-DDTHH:mm:sscurl -X PUT "https://your-school.rist.pro/api/group/comment/1" \
-H "Authorization: Bearer $RIST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "string"
}'const response = await fetch("https://your-school.rist.pro/api/group/comment/1", {
method: "PUT",
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"text": "string"
}),
});
const { data } = await response.json();import os
import requests
response = requests.put(
"https://your-school.rist.pro/api/group/comment/1",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
json={
"text": "string"
},
)
response.raise_for_status()
data = response.json()["data"]Response example · 200
{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"commentId": 1,
"studentId": 1,
"teacherId": 1,
"groupId": 1,
"customerId": 1,
"text": "string",
"user": {
"id": 1,
"firstName": "string",
"lastName": "string",
"middleName": "string",
"isArchival": false
},
"automation": {
"automationId": 1,
"name": "string"
},
"files": [
{
"storageFileId": 1,
"key": "string",
"name": "string",
"mimeType": "string",
"size": 0
}
],
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00"
}
}