University of Waterloo ClassSchedules API

The ClassSchedules API from University of Waterloo — 3 operation(s) for classschedules.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

university-of-waterloo-classschedules-api-openapi.yml Raw ↑
openapi: 3.0.4
info:
  title: Waterloo OpenData AcademicOrganizations ClassSchedules API
  version: v3
servers:
- url: https://openapi.data.uwaterloo.ca
  description: University of Waterloo OpenData API v3
security:
- apiKey: []
tags:
- name: ClassSchedules
paths:
  /v3/ClassSchedules/{termCode}:
    get:
      tags:
      - ClassSchedules
      summary: Get the Course IDs that have one or more active and associated schedules in the given Term
      parameters:
      - name: termCode
        in: path
        description: Waterloo Term code to filter on
        required: true
        schema:
          maxLength: 4
          minLength: 4
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /v3/ClassSchedules/{termCode}/{courseId}:
    get:
      tags:
      - ClassSchedules
      summary: Get Class data for a scheduled Course by Course ID, in a specific Term
      parameters:
      - name: termCode
        in: path
        description: Waterloo Term code to filter on
        required: true
        schema:
          maxLength: 4
          minLength: 4
          type: string
      - name: courseId
        in: path
        description: Course ID to filter on
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Class'
  /v3/ClassSchedules/{termCode}/{subject}/{catalogNumber}:
    get:
      tags:
      - ClassSchedules
      summary: Get Class data for a scheduled Course by Subject and catalog number, in a specific Term
      parameters:
      - name: termCode
        in: path
        description: Waterloo Term code to filter on
        required: true
        schema:
          maxLength: 4
          minLength: 4
          type: string
      - name: subject
        in: path
        description: Academic Subject code to filter ron
        required: true
        schema:
          pattern: ^[A-Za-z]*$
          type: string
      - name: catalogNumber
        in: path
        description: Catalog number to filter on
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Class'
components:
  schemas:
    Class:
      type: object
      properties:
        courseId:
          type: string
          description: Course identifier number, not unique
          nullable: true
        courseOfferNumber:
          type: integer
          description: Course offer number identifier for this class
          format: int32
        sessionCode:
          type: string
          description: Session code for this class
          nullable: true
        classSection:
          type: integer
          description: Number identifying the section of this class
          format: int32
        termCode:
          type: string
          description: Waterloo academic term code
          nullable: true
        classNumber:
          type: integer
          description: Class number identifier for this class
          format: int32
        courseComponent:
          type: string
          description: Course component code for this class
          nullable: true
        associatedClassCode:
          type: integer
          description: Associated class code for this class
          format: int32
        maxEnrollmentCapacity:
          type: integer
          description: Indicates the maximum number of students that can enroll in this class
          format: int32
        enrolledStudents:
          type: integer
          description: Indicates the current number of students enrolled in this class
          format: int32
        enrollConsentCode:
          type: string
          description: Code describing whether No, Instructor, or Department consent to enroll is required. Overrides Course level information if different.
          nullable: true
        enrollConsentDescription:
          type: string
          description: Description of the enroll requirement. Overrides Course level information if different.
          nullable: true
          readOnly: true
        dropConsentCode:
          type: string
          description: Code describing whether No, Instructor, or Department consent to drop is required. Overrides Course level information if different.
          nullable: true
        dropConsentDescription:
          type: string
          description: Description of the drop requirement. Overrides Course level information if different.
          nullable: true
          readOnly: true
        scheduleData:
          type: array
          items:
            $ref: '#/components/schemas/ClassSchedule'
          description: Schedule data for this class
          nullable: true
        instructorData:
          type: array
          items:
            $ref: '#/components/schemas/ClassInstructor'
          description: Instructor data for this class
          nullable: true
      additionalProperties: false
      description: Represents an Academic class, which is a scheduled instance of a Course
    ClassSchedule:
      type: object
      properties:
        courseId:
          type: string
          description: Course identifier number, not unique
          nullable: true
        courseOfferNumber:
          type: integer
          description: Course offer number identifier for this class
          format: int32
        sessionCode:
          type: string
          description: Session code number for this class
          nullable: true
        classSection:
          type: integer
          description: Number identifying the section of this class
          format: int32
        termCode:
          type: string
          description: Waterloo academic term code
          nullable: true
        classMeetingNumber:
          type: integer
          description: Identifier for the class meeting this schedule data relates to
          format: int32
        scheduleStartDate:
          type: string
          description: The date this schedule begins
          format: date-time
        scheduleEndDate:
          type: string
          description: The date this schedule ends
          format: date-time
        classMeetingStartTime:
          type: string
          description: The start time of this class
          format: date-time
          nullable: true
        classMeetingEndTime:
          type: string
          description: The end time of this class
          format: date-time
          nullable: true
        classMeetingDayPatternCode:
          type: string
          description: A code representing the days the class schedule takes place during the week
          nullable: true
        classMeetingWeekPatternCode:
          type: string
          description: A Y|N per day representation of the class schedule taking place during the week
          nullable: true
        locationName:
          type: string
          description: REMOVED for privacy. Building and room name for the location of this class schedule
          nullable: true
      additionalProperties: false
      description: Data describing scheduling and availability data for a Class
    ClassInstructor:
      type: object
      properties:
        courseId:
          type: string
          description: Course identifier number, not unique
          nullable: true
        courseOfferNumber:
          type: integer
          description: Course offer number identifier for this class
          format: int32
        sessionCode:
          type: string
          description: Session code number for this class
          nullable: true
        classSection:
          type: integer
          description: Number identifying the section of this class
          format: int32
        termCode:
          type: string
          description: Waterloo academic term code
          nullable: true
        instructorRoleCode:
          type: string
          description: REMOVED for privacy. The code designation for the instructor's role in this class
          nullable: true
        instructorFirstName:
          type: string
          description: REMOVED for privacy. The Instructors preferred first name
          nullable: true
        instructorLastName:
          type: string
          description: REMOVED for privacy. The Instructors preferred last name
          nullable: true
        instructorUniqueIdentifier:
          type: string
          description: REMOVED for privacy. A unique identifier that persists through name changes. Not guaranteed, but likely to be immutable for instructor.
          nullable: true
        classMeetingNumber:
          type: integer
          description: Identifier for the class meeting this instructor is for
          format: int32
      additionalProperties: false
      description: A person instructing a Class
  securitySchemes:
    apiKey:
      type: apiKey
      description: Custom API key authentication
      name: x-api-key
      in: header