Skip to main content

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​

ParameterTypeRequiredDescription
idstringYesCourse UUID. See Identifiers.

Query Parameters​

ParameterTypeDefaultDescription
pageinteger1Page 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_pageinteger25Items per page (min: 1, max: 100). Anything else is 422.
sortstring-created_at-created_at or created_at. Anything else is 422.
has_solutionstring—true or false. Omit it for both. false is the unsolved queue. Anything else is 422.
querystring—Case-insensitive substring of the question body. An empty value is the same as omitting it. Longer than 255 characters is 422.
filestring—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.