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

GET

/courses

Retrieve a list of all courses with optional filtering

Parameters

page(integer)

Page number for pagination (default: 1)

limit(integer)

Number of courses per page (default: 20)

subject(string)

Filter by subject (e.g., Mathematics, Science)

grade_level(string)

Filter by grade level (e.g., Grade 10, Grade 11)

status(string)

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
  }
}
POST

/courses

Create a new course

Parameters

course_code(string)Required

Unique course code (e.g., MATH101)

course_name(string)Required

Course name

subject(string)Required

Subject area

grade_level(string)Required

Target grade level

credits(integer)Required

Number of credits

description(string)

Course description

teacher_id(integer)Required

Assigned teacher ID

class_id(integer)Required

Associated class ID

max_enrollment(integer)

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"
}
GET

/courses/{id}

Retrieve detailed information for a specific course

Parameters

id(integer)Required

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"
    }
  ]
}
GET

/courses/{id}/attendance

Get attendance records for a specific course

Parameters

id(integer)Required

Course ID

date_from(string)

Start date (YYYY-MM-DD)

date_to(string)

End date (YYYY-MM-DD)

student_id(integer)

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
  }
}
POST

/courses/{id}/grades

Submit grades for course assignments

Parameters

id(integer)Required

Course ID

assignment_id(integer)Required

Assignment ID

grades(array)Required

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.