List Comments
Retrieve a paginated list of questions on the live course, newest first unless you set sort. Each question includes every reply. The list has no preview_url. See Comments.
Request
GET /players/{id}/comments
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Course UUID. See Identifiers. |
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number. A missing, non-numeric, zero, or negative value is treated as 1 and does not return an error. A page past the end returns an empty data array and 200. |
per_page | integer | 25 | Items per page (min: 1, max: 100). Anything else is 422. |
sort | string | -created_at | -created_at or created_at. Anything else is 422. |
has_solution | string | — | true or false. Omit it for both. false is the unsolved queue. Anything else is 422. |
query | string | — | Case-insensitive substring of the question body. An empty value is the same as omitting it. Longer than 255 characters is 422. |
file | string | — | Lesson UUID. A value that is not a UUID is 422. A missing lesson, a heading, or a lesson that is not live is 404. |
Example Request
curl -X GET "https://app.easy.tools/api/v1/players/8f3c1a62-d047-4e89-9b25-1c6a4d8e0f71/comments?page=1&per_page=25" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
Response
Success Response (200)
{
"data": [
{
"id": "c4e8a1b2-7d36-4f90-a158-6b0e2c9d4f71",
"file_id": "3a91c4e0-6b27-4f58-9d14-7e2b8c0a5f63",
"file_name": "Welcome",
"body": "Where is the recording?",
"created_at": "2026-05-02T00:00:00.000Z",
"author": {
"name": "Ada Lovelace",
"initials": "AL",
"avatar_url": null,
"is_course_author": true
},
"likes_count": 2,
"replies_count": 1,
"has_solution": true,
"replies": [
{
"id": "9a2f6c18-5e47-4b83-9d20-1c8a7e3b6d54",
"body": "It is in this lesson.",
"created_at": "2026-05-02T01:00:00.000Z",
"author": {
"name": "Student 3",
"initials": "S3",
"avatar_url": null,
"is_course_author": false
},
"likes_count": 0,
"replies_count": 0,
"is_best_answer": true
}
]
}
],
"pagination": {
"current_page": 1,
"total_pages": 1,
"per_page": 25,
"total": 1
}
}
Response Fields
Each entry in data has the fields described in Question Object, including file_id and file_name. avatar_url null means no photo. has_solution false means the question has no marked solution.
When comments are turned off, the response is 200 with data: [], total 0, and total_pages 0.
Pagination Object
See Pagination Object. total is the number of questions that match the filters.
Error Responses
Not Found Error (404)
See Identifiers. An unknown course, or a file that is not a live lesson, returns 404 even when comments are turned off.
{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found"
}
}
Validation Error (422 Unprocessable Entity)
{
"error": {
"code": "VALIDATION_ERROR",
"message": "The given data was invalid",
"details": {
"per_page": ["per_page must not be greater than 100"]
}
}
}
A bad sort or has_solution uses the same envelope, with details keyed by that parameter.
Authentication, permission, and rate-limit errors are described in Authorization.