List Courses
Retrieve a paginated list of courses in your workspace. Drafts and published courses are both included.
Request
GET /players
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. |
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
| Field | Type | Description |
|---|---|---|
current_page | integer | Current page number |
total_pages | integer | Number of result pages. 0 when the list is empty. |
per_page | integer | Number of items per page |
total | integer | Total 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.