Courses API
Comprehensive API for managing courses, classes, schedules, and academic records.
Course Management Features
Course Management
Create, update, and manage course information
- Course creation and configuration
- Teacher assignment
- Class scheduling
- Enrollment management
Schedule Management
Handle course schedules and timetables
- Time slot management
- Room assignments
- Conflict detection
- Calendar integration
Student Enrollment
Manage student enrollment in courses
- Enrollment tracking
- Capacity management
- Waitlist handling
- Transfer requests
Academic Records
Track grades, attendance, and performance
- Grade submission
- Attendance tracking
- Performance analytics
- Report generation
API Endpoints
/courses
Retrieve a list of all courses with optional filtering
Parameters
Page number for pagination (default: 1)
Number of courses per page (default: 20)
Filter by subject (e.g., Mathematics, Science)
Filter by grade level (e.g., Grade 10, Grade 11)
Filter by status (active, inactive, archived)
Response
Success Response (200)
{
"data": [
{
"id": 101,
"course_code": "MATH101",
"course_name": "Algebra I",
"subject": "Mathematics",
"grade_level": "Grade 9",
"credits": 4,
"description": "Introduction to algebraic concepts and problem solving",
"teacher_id": 201,
"teacher_name": "Dr. Sarah Johnson",
"class_id": 301,
"class_name": "Grade 9A",
"schedule": {
"days": ["Monday", "Wednesday", "Friday"],
"time": "09:00-10:00",
"room": "Room 201"
},
"enrollment_count": 25,
"max_enrollment": 30,
"status": "active",
"academic_year": "2023-2024",
"semester": "Fall"
}
],
"pagination": {
"total": 45,
"page": 1,
"limit": 20,
"total_pages": 3
}
}/courses
Create a new course
Parameters
Unique course code (e.g., MATH101)
Course name
Subject area
Target grade level
Number of credits
Course description
Assigned teacher ID
Associated class ID
Maximum number of students
Response
Success Response (201)
{
"id": 102,
"course_code": "SCI201",
"course_name": "Biology",
"subject": "Science",
"grade_level": "Grade 10",
"credits": 4,
"description": "Introduction to biological concepts",
"teacher_id": 202,
"teacher_name": "Dr. Michael Brown",
"class_id": 302,
"class_name": "Grade 10A",
"enrollment_count": 0,
"max_enrollment": 25,
"status": "active",
"academic_year": "2023-2024",
"semester": "Fall",
"created_at": "2024-01-15T10:30:00Z"
}/courses/{id}
Retrieve detailed information for a specific course
Parameters
Course ID
Response
Success Response (200)
{
"id": 101,
"course_code": "MATH101",
"course_name": "Algebra I",
"subject": "Mathematics",
"grade_level": "Grade 9",
"credits": 4,
"description": "Introduction to algebraic concepts and problem solving",
"teacher_id": 201,
"teacher_name": "Dr. Sarah Johnson",
"class_id": 301,
"class_name": "Grade 9A",
"schedule": {
"days": ["Monday", "Wednesday", "Friday"],
"time": "09:00-10:00",
"room": "Room 201"
},
"enrollment_count": 25,
"max_enrollment": 30,
"status": "active",
"academic_year": "2023-2024",
"semester": "Fall",
"students": [
{
"id": 123,
"student_id": "STU001",
"name": "John Doe",
"enrollment_date": "2023-09-01",
"current_grade": "A-"
}
],
"assignments": [
{
"id": 501,
"title": "Algebra Basics Quiz",
"due_date": "2024-01-20",
"total_points": 100,
"status": "active"
}
]
}/courses/{id}/attendance
Get attendance records for a specific course
Parameters
Course ID
Start date (YYYY-MM-DD)
End date (YYYY-MM-DD)
Filter by specific student
Response
Success Response (200)
{
"course_id": 101,
"course_name": "Algebra I",
"attendance_records": [
{
"date": "2024-01-15",
"students": [
{
"student_id": 123,
"student_name": "John Doe",
"status": "present",
"marked_at": "2024-01-15T09:05:00Z"
},
{
"student_id": 124,
"student_name": "Jane Smith",
"status": "absent",
"marked_at": null
}
]
}
],
"summary": {
"total_days": 15,
"present_days": 14,
"absent_days": 1,
"attendance_rate": 93.3
}
}/courses/{id}/grades
Submit grades for course assignments
Parameters
Course ID
Assignment ID
Array of student grades
Response
Success Response (200)
{
"message": "Grades submitted successfully",
"assignment_id": 501,
"grades_submitted": 25,
"updated_at": "2024-01-15T14:30:00Z"
}Course Data Model
Understanding the course data structure will help you work with the API more effectively.
{
"id": 101, // Unique course ID
"course_code": "MATH101", // Institution course code
"course_name": "Algebra I", // Course name
"subject": "Mathematics", // Subject area
"grade_level": "Grade 9", // Target grade level
"credits": 4, // Number of credits
"description": "...", // Course description
"teacher_id": 201, // Assigned teacher ID
"teacher_name": "Dr. Sarah Johnson", // Teacher name
"class_id": 301, // Associated class ID
"class_name": "Grade 9A", // Class name
"schedule": { // Course schedule
"days": ["Monday", "Wednesday", "Friday"],
"time": "09:00-10:00",
"room": "Room 201"
},
"enrollment_count": 25, // Current enrollment
"max_enrollment": 30, // Maximum capacity
"status": "active", // active, inactive, archived
"academic_year": "2023-2024", // Academic year
"semester": "Fall", // Semester/term
"students": [...], // Enrolled students
"assignments": [...], // Course assignments
"created_at": "2023-09-01T08:00:00Z",
"updated_at": "2024-01-15T14:30:00Z"
}Best Practices
Course Management
- Use consistent course codes across your institution
- Set appropriate enrollment limits
- Keep course information up to date
- Archive completed courses properly
Academic Records
- Submit grades promptly after assessments
- Maintain accurate attendance records
- Use consistent grading scales
- Backup academic data regularly
Explore More APIs
Continue building your integration with other Klasstra APIs.