Teacher APIs

Build powerful tools for lesson planning, assessments, and professional growth tracking. The Teacher API suite gives you everything you need to create tools that educators love.

Quick Start

Get up and running with the Teacher APIs in minutes.

javascript
const plum = require('@plum/sdk');

const client = new plum.Client({
  apiKey: process.env.PLUM_API_KEY
});

// Fetch all lessons
const lessons = await client.lessons.list({
  subject: 'mathematics',
  grade: '10'
});

Lessons API

Create, manage, and deliver structured lesson content.

GET /v1/lessons

Retrieve a paginated list of lessons. Filter by subject, grade, type, or date range.

Query Parameters

  • subject string - Filter by subject area
  • grade string - Filter by grade level
  • type string - Filter by lesson type (interactive, lecture, workshop)
  • limit integer - Number of records to return (default: 20, max: 100)
  • offset integer - Number of records to skip
response
{
  "data": [
    {
      "id": "les_abc123",
      "title": "Introduction to Algebra",
      "subject": "mathematics",
      "grade": "10",
      "type": "interactive",
      "duration": "45min",
      "objectives": [
        "Understand variables and expressions",
        "Solve linear equations"
      ],
      "created_at": "2025-01-15T10:30:00Z"
    }
  ],
  "total": 42,
  "limit": 20,
  "offset": 0
}
POST /v1/lessons

Create a new lesson plan with structured content and learning objectives.

Request Body

  • title string required - Lesson title
  • subject string required - Subject area
  • grade string required - Target grade level
  • type string - Lesson type (default: lecture)
  • duration string - Expected duration (e.g. 45min)
  • objectives string[] - Learning objectives
  • content object - Lesson content body
javascript
const lesson = await client.lessons.create({
  title: "Introduction to Algebra",
  subject: "mathematics",
  grade: "10",
  type: "interactive",
  duration: "45min",
  objectives: [
    "Understand variables and expressions",
    "Solve linear equations"
  ]
});
GET /v1/lessons/:id

Retrieve a specific lesson by its ID, including full content and metadata.

PUT /v1/lessons/:id

Update an existing lesson's content, objectives, or metadata.

DELETE /v1/lessons/:id

Delete a lesson. This action cannot be undone.

Assessments API

Create quizzes, exams, and other assessment tools with automatic grading.

GET /v1/assessments

List all assessments. Filter by subject, type, or lesson.

Query Parameters

  • subject string - Filter by subject
  • type string - Assessment type (quiz, exam, assignment)
  • lesson_id string - Filter by associated lesson
POST /v1/assessments

Create a new assessment with questions and grading criteria.

javascript
const assessment = await client.assessments.create({
  title: "Algebra Quiz 1",
  type: "quiz",
  lesson_id: "les_abc123",
  time_limit: "30min",
  questions: [
    {
      type: "multiple_choice",
      question: "What is 2x + 3 = 7? Solve for x.",
      options: ["x = 1", "x = 2", "x = 3", "x = 4"],
      correct_answer: 1
    }
  ]
});
POST /v1/assessments/:id/grade

Submit answers and receive automatic grading with detailed feedback.

Progress Tracking API

Monitor teaching effectiveness and professional development milestones.

GET /v1/progress

Retrieve progress reports for a teacher's classes and lessons.

Query Parameters

  • teacher_id string - Teacher identifier
  • period string - Time period (week, month, term, year)
POST /v1/progress

Log a professional development milestone or teaching achievement.