Skip to main content

Get Active Lesson

Authentication Required: Any authenticated user
GET /api/lessons/active
string
Learner ID to get active lesson for (defaults to authenticated user)
Returns the currently active lesson for the learner, or null if none exists.

Response

Response Example

Error Codes

  • 401 - Unauthorized
  • 500 - Failed to fetch active lesson

Create Custom Lesson

Authentication Required: Any authenticated user
POST /api/lessons/create
number
required
Grade level for the lesson (K-12)
string
required
ID of the learner this lesson is for
string
Lesson topic (can be empty for random topic)
string
Subject area (e.g., “Math”, “Science”)
string
Subject category
string
Difficulty level: beginner, intermediate, or advanced

Authorization

  • LEARNER: Can only create lessons for themselves
  • PARENT: Can create lessons for their children
  • ADMIN: Can create lessons for any learner
Creating a new lesson automatically retires any existing ACTIVE lesson for that learner. Lesson images are generated in the background after the lesson is created.

Response

string
Lesson UUID
number
Learner user ID
string
Module identifier
string
Lesson status (ACTIVE, DONE, or QUEUED)
string
Subject area
string
Subject category
string
Difficulty level
object
Response Example

Error Codes

  • 400 - Missing required fields: gradeLevel, learnerId
  • 403 - Forbidden (insufficient permissions)
  • 404 - Learner profile not found
  • 503 - Lesson generation failed after multiple attempts
  • 500 - Failed to generate lesson content

Get Lesson by ID

Authentication Required: Any authenticated user with access to the lesson
GET /api/lessons/:lessonId
string
required
Lesson UUID

Authorization

  • ADMIN: Can access any lesson
  • LEARNER: Can access their own lessons
  • PARENT: Can access their children’s lessons

Response

Returns the complete lesson object (same structure as Create Lesson response).

Error Codes

  • 401 - Unauthorized
  • 403 - Forbidden
  • 404 - Lesson not found

Get Lesson History

Authentication Required: Any authenticated user
GET /api/lessons
string
required
Learner ID to get lesson history for (required for PARENT/ADMIN, defaults to authenticated user for LEARNER)
number
Maximum number of lessons to return (default: 10)

Authorization

  • LEARNER: Can only access their own history
  • PARENT: Can access their children’s history with learnerId query param
  • ADMIN: Can access any learner’s history

Response

Response Example

Error Codes

  • 400 - learnerId is required
  • 401 - Unauthorized
  • 403 - Forbidden