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.
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.
/v1/lessonsRetrieve a paginated list of lessons. Filter by subject, grade, type, or date range.
Query Parameters
subjectstring - Filter by subject areagradestring - Filter by grade leveltypestring - Filter by lesson type (interactive,lecture,workshop)limitinteger - Number of records to return (default: 20, max: 100)offsetinteger - Number of records to skip
{
"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
}/v1/lessonsCreate a new lesson plan with structured content and learning objectives.
Request Body
titlestring required - Lesson titlesubjectstring required - Subject areagradestring required - Target grade leveltypestring - Lesson type (default:lecture)durationstring - Expected duration (e.g.45min)objectivesstring[] - Learning objectivescontentobject - Lesson content body
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"
]
});/v1/lessons/:idRetrieve a specific lesson by its ID, including full content and metadata.
/v1/lessons/:idUpdate an existing lesson's content, objectives, or metadata.
/v1/lessons/:idDelete a lesson. This action cannot be undone.
Assessments API
Create quizzes, exams, and other assessment tools with automatic grading.
/v1/assessmentsList all assessments. Filter by subject, type, or lesson.
Query Parameters
subjectstring - Filter by subjecttypestring - Assessment type (quiz,exam,assignment)lesson_idstring - Filter by associated lesson
/v1/assessmentsCreate a new assessment with questions and grading criteria.
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
}
]
});/v1/assessments/:id/gradeSubmit answers and receive automatic grading with detailed feedback.
Progress Tracking API
Monitor teaching effectiveness and professional development milestones.
/v1/progressRetrieve progress reports for a teacher's classes and lessons.
Query Parameters
teacher_idstring - Teacher identifierperiodstring - Time period (week,month,term,year)
/v1/progressLog a professional development milestone or teaching achievement.