Skip to main content

List Courses

Retrieve a paginated list of courses in your workspace. Drafts and published courses are both included.

Request​

GET /players

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.

Ordering: Results are ordered by updated_at descending (most recently updated first).

Example Request​

curl -X GET "https://app.easy.tools/api/v1/players?page=1&per_page=25" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"

Response​

Success Response (200)​

{
"data": [
{
"id": "8f3c1a62-d047-4e89-9b25-1c6a4d8e0f71",
"slug": "course-intro",
"name": "Course intro",
"status": "draft",
"created_at": "2026-01-15T10:30:00.000Z",
"updated_at": "2026-01-15T10:30:00.000Z",
"published_at": null,
"has_draft": false
},
{
"id": "b6d19e40-7c25-4a81-8f33-2e0c5a9d4b17",
"slug": "lesson-library",
"name": "Lesson library",
"status": "published",
"created_at": "2026-01-10T08:00:00.000Z",
"updated_at": "2026-01-12T16:45:00.000Z",
"published_at": "2026-01-12T16:45:00.000Z",
"has_draft": true
}
],
"pagination": {
"current_page": 1,
"total_pages": 1,
"per_page": 25,
"total": 2
}
}

Response Fields​

Each entry in data has the fields described in Course Object. The list has no preview_url, draft_version, or draft_updated_at. name, status, slug, and the timestamps are the live course, including when has_draft is true.

Pagination Object​

FieldTypeDescription
current_pageintegerCurrent page number
total_pagesintegerNumber of result pages. 0 when the list is empty.
per_pageintegerNumber of items per page
totalintegerTotal number of courses in the workspace

Error Responses​

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"]
}
}
}

Authentication, permission, and rate-limit errors are described in Authorization.