UCLA Courses API

Every approved UCLA course, current and historical - title, description, General Education and diversity attributes, requisites, and the General Education foundation and category structure courses are certified against. Seven read operations. Courses are identified by the triple subjectAreaCode / courseCatalogNumber / courseStartTermCode, because UCLA versions its courses by the term a version took effect. Sourced from the Registrar's general catalog.

OpenAPI Specification

ucla-sis-courses-openapi.yml Raw ↑
swagger: '2.0'
info:
  version: v1
  title: API version v1
host: api.ucla.edu
basePath: /sis
schemes:
- https
paths:
  /courses/v1:
    get:
      tags:
      - Courses
      summary: Returns a collection of Courses
      operationId: Course_Get
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: subjectAreaCode
        in: query
        description: Math
        required: false
        type: string
      - name: courseCatalogNumber
        in: query
        description: '0001'
        required: false
        type: string
      - name: courseStartTermCode
        in: query
        description: 96F
        required: false
        type: string
      - name: PageNumber
        in: query
        description: '1'
        required: false
        type: integer
        format: int32
      - name: PageSize
        in: query
        description: Default 10.<br />Pass 0 to get all records.
        required: false
        type: integer
        format: int32
      responses:
        '200':
          description: Record(s) found
          schema:
            $ref: '#/definitions/CourseCollection'
        ' 200':
          description: Record(s) found
        ' 400':
          description: Bad Request
        ' 401':
          description: Unauthorized
        ' 403':
          description: Forbidden
        ' 404':
          description: No Record Found
        ' 500':
          description: Server Error
      deprecated: false
  /courses/{subjectAreaCode}/{courseCatalogNumber}/{courseStartTermCode}/coursediversity/v1:
    get:
      tags:
      - Courses
      summary: ''
      operationId: CourseDiversity_Get
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: subjectAreaCode
        in: path
        description: HIST
        required: true
        type: string
      - name: courseCatalogNumber
        in: path
        description: 0008A
        required: true
        type: string
      - name: courseStartTermCode
        in: path
        description: 03F
        required: true
        type: string
      - name: courseDiversityCollegeCode
        in: query
        description: AA or LS
        required: false
        type: string
      responses:
        '200':
          description: Record(s) found
          schema:
            $ref: '#/definitions/CourseDiversityResponse'
        ' 200':
          description: Record(s) found
        ' 400':
          description: Bad Request
        ' 401':
          description: Unauthorized
        ' 403':
          description: Forbidden
        ' 404':
          description: No Record Found
        ' 500':
          description: Server Error
      deprecated: false
  /courses/{subjectAreaCode}/{courseCatalogNumber}/{courseStartTermCode}/coursege/v1:
    get:
      tags:
      - Courses
      summary: ''
      operationId: CourseGEFoundation_Get
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: subjectAreaCode
        in: path
        description: A&amp;O SCI
        required: true
        type: string
      - name: courseCatalogNumber
        in: path
        description: 0001L
        required: true
        type: string
      - name: courseStartTermCode
        in: path
        description: 04F
        required: true
        type: string
      - name: GEFoundationCode
        in: query
        description: SI
        required: false
        type: string
      - name: GEFoundationCategoryCode
        in: query
        description: PS
        required: false
        type: string
      - name: GEAttributeCode
        in: query
        description: LD
        required: false
        type: string
      responses:
        '200':
          description: Record(s) found
          schema:
            $ref: '#/definitions/CourseGEFoundationResponse'
        ' 200':
          description: Record(s) found
        ' 400':
          description: Bad Request
        ' 401':
          description: Unauthorized
        ' 403':
          description: Forbidden
        ' 404':
          description: No Record Found
        ' 500':
          description: Server Error
      deprecated: false
  /courses/{subjectAreaCode}/{courseCatalogNumber}/{courseStartTermCode}/coursedetail/v1:
    get:
      tags:
      - Courses
      summary: ''
      operationId: CourseDetail_Get
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: subjectAreaCode
        in: path
        description: Math
        required: true
        type: string
      - name: courseCatalogNumber
        in: path
        description: '0001'
        required: true
        type: string
      - name: courseStartTermCode
        in: path
        description: 96F
        required: true
        type: string
      - name: courseActivityTypeCode
        in: query
        description: LEC
        required: false
        type: string
      - name: coursePrimaryActivityFlag
        in: query
        description: Y or N
        required: false
        type: string
      - name: courseGradeTypeCode
        in: query
        description: SO
        required: false
        type: string
      - name: courseUnitTypeCode
        in: query
        description: F
        required: false
        type: string
      responses:
        '200':
          description: Record(s) found
          schema:
            $ref: '#/definitions/CourseDetailResponse'
        ' 200':
          description: Record(s) found
        ' 400':
          description: Bad Request
        ' 401':
          description: Unauthorized
        ' 403':
          description: Forbidden
        ' 404':
          description: No Record Found
        ' 500':
          description: Server Error
      deprecated: false
  /courses/{subjectAreaCode}/{courseCatalogNumber}/{courseStartTermCode}/courserequisites/v1:
    get:
      tags:
      - Courses
      summary: ''
      operationId: CourseRequisite_Get
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: subjectAreaCode
        in: path
        description: MATH
        required: true
        type: string
      - name: courseCatalogNumber
        in: path
        description: 0003A
        required: true
        type: string
      - name: courseStartTermCode
        in: path
        description: 14F
        required: true
        type: string
      - name: requisiteSequenceNumber
        in: query
        description: '10'
        required: false
        type: string
      - name: requisiteCourseName
        in: query
        description: MATH 0001
        required: false
        type: string
      - name: coRequisiteFlag
        in: query
        description: Y or N
        required: false
        type: string
      - name: preRequisiteFlag
        in: query
        description: Y or N
        required: false
        type: string
      - name: requisiteSeverityText
        in: query
        description: '"Reject enrollment request" or "Warn on enrollment request"'
        required: false
        type: string
      responses:
        '200':
          description: Record(s) found
          schema:
            $ref: '#/definitions/CourseRequisiteResponse'
        ' 200':
          description: Record(s) found
        ' 400':
          description: Bad Request
        ' 401':
          description: Unauthorized
        ' 403':
          description: Forbidden
        ' 404':
          description: No Record Found
        ' 500':
          description: Server Error
      deprecated: false
  /gefoundations/v1:
    get:
      tags:
      - GE Foundations
      summary: Returns a collection of GE Foundations
      operationId: GEFoundations_GetGEFoundations
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: GEFoundationCode
        in: query
        description: SI
        required: false
        type: string
      - name: GEFoundationName
        in: query
        description: FOUNDATIONS OF SCIENTIFIC INQUIRY
        required: false
        type: string
      - name: GEFoundationCategoryCode
        in: query
        description: LS
        required: false
        type: string
      - name: GEFoundationCategoryName
        in: query
        description: LIFE SCIENCES
        required: false
        type: string
      - name: PageNumber
        in: query
        description: '1'
        required: false
        type: integer
        format: int32
      - name: PageSize
        in: query
        description: '10'
        required: false
        type: integer
        format: int32
      responses:
        '200':
          description: Record(s) found
          schema:
            $ref: '#/definitions/GEFoundationsCollection'
        ' 200':
          description: Record(s) found
        ' 400':
          description: Bad Request
        ' 401':
          description: Unauthorized
        ' 403':
          description: Forbidden
        ' 404':
          description: No Record Found
        ' 500':
          description: Server Error
      deprecated: false
  /gefoundations/{GEFoundationCode}/{GEFoundationCategoryCode}/gefoundationcategorycourses/v1:
    get:
      tags:
      - GE Foundations
      summary: ''
      operationId: GEFoundationCategoryCourses_GetGEFoundationCategoryCourses
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: GEFoundationCode
        in: path
        description: SI
        required: true
        type: string
      - name: GEFoundationCategoryCode
        in: path
        description: LS
        required: true
        type: string
      - name: subjectAreaCode
        in: query
        description: LIFESCI
        required: false
        type: string
      - name: PageNumber
        in: query
        description: '1'
        required: false
        type: integer
        format: int32
      - name: PageSize
        in: query
        description: '10'
        required: false
        type: integer
        format: int32
      responses:
        '200':
          description: Record(s) found
          schema:
            $ref: '#/definitions/GEFoundationCategoryCoursesCollection'
        ' 200':
          description: Record(s) found
        ' 400':
          description: Bad Request
        ' 401':
          description: Unauthorized
        ' 403':
          description: Forbidden
        ' 404':
          description: No Record Found
        ' 500':
          description: Server Error
      deprecated: false
definitions:
  Object:
    type: object
    properties: {}
  ClassSectionsResponse:
    type: object
    properties:
      classSection:
        $ref: '#/definitions/ClassSections'
  ClassSections:
    type: object
    properties:
      dataDisclosureWarning:
        type: string
      offeredTermCode:
        type: string
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseStartTermCode:
        type: string
      classNumber:
        type: string
      classSectionSessionDisplayFormat:
        type: string
      classSectionCollection:
        type: array
        items:
          $ref: '#/definitions/ClassSectionNumber'
  ClassSectionNumber:
    type: object
    properties:
      classSectionNumber:
        type: string
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  LinkModel:
    type: object
    properties:
      href:
        type: string
      rel:
        type: string
      method:
        type: string
  ClassSectionDetailResponse:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      classSectionDetail:
        $ref: '#/definitions/ClassSectionDetail'
  ClassSectionDetail:
    type: object
    properties:
      dataDisclosureWarning:
        type: string
      offeredTermCode:
        type: string
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseStartTermCode:
        type: string
      classSectionNumber:
        type: string
      classSectionNumberDisplay:
        type: string
      classSectionID:
        type: string
      classSectionSessionDisplayFormat:
        type: string
      concurrentEnrollmentFlag:
        type: string
      classSectionActivityCode:
        type: string
      classSectionActivityEnrollmentSequenceNumber:
        type: string
      classSectionPrimaryActivityFlag:
        type: string
      classSectionGradeTypeCode:
        type: string
      classSectionUnitTypeCode:
        type: string
      classSectionUnitCollection:
        type: array
        items:
          $ref: '#/definitions/ClassSectionUnit'
      classSectionNotesCollection:
        type: array
        items:
          $ref: '#/definitions/ClassSectionNotes'
      classSectionOnlineFlag:
        type: string
      classEnrollmentRestrictionTextCollection:
        type: array
        items:
          $ref: '#/definitions/ClassSectionRestrictionText'
      classSectionEnrollmentStatusCode:
        type: string
      classSectionEnrollmentCapacityNumber:
        type: string
      classSectionEnrollmentTotal:
        type: string
      classSectionUNEXEnrollmentTotal:
        type: string
      classSectionWaitlistCapacityNumber:
        type: string
      classSectionWaitlistTotal:
        type: string
      classSectionSchedulePrintCode:
        type: string
      instructorUCLAIDCollection:
        type: array
        items:
          $ref: '#/definitions/ClassSectionInstructor'
      classSectionCombinedMeetingId:
        type: string
      classSectionMeetingCollection:
        type: array
        items:
          $ref: '#/definitions/ClassSectionMeetingLocation'
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  ClassSectionUnit:
    type: object
    properties:
      classSectionUnit:
        type: string
  ClassSectionNotes:
    type: object
    properties:
      classSectionNotes:
        type: string
  ClassSectionRestrictionText:
    type: object
    properties:
      classEnrollmentRestrictionText:
        type: string
  ClassSectionInstructor:
    type: object
    properties:
      uclaid:
        type: string
      links:
        $ref: '#/definitions/LinkModel'
  ClassSectionMeetingLocation:
    type: object
    properties:
      classSectionMeetingDaysofWeekCode:
        type: string
      classSectionMeetingStartTime:
        type: string
      classSectionMeetingStopTime:
        type: string
      classSectionBuildingCode:
        type: string
      classSectionBuildingRoomCode:
        type: string
  ClassesCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      classes:
        type: array
        items:
          $ref: '#/definitions/Classes'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  Classes:
    type: object
    properties:
      dataDisclosureWarning:
        type: string
      offeredTermCode:
        type: string
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseCatalogNumberDisplay:
        type: string
      courseStartTermCode:
        type: string
      classSessionDisplayFormat:
        type: string
      termSessionGroupCollection:
        type: array
        items:
          $ref: '#/definitions/SessionGroup'
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  SessionGroup:
    type: object
    properties:
      termsessionGroupCode:
        type: string
      termsessionInstructionWeeks:
        type: string
      classCollection:
        type: array
        items:
          $ref: '#/definitions/ClassNumber'
  ClassNumber:
    type: object
    properties:
      classNumber:
        type: string
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  ClassFinalExamResponse:
    type: object
    properties:
      classFinalExam:
        $ref: '#/definitions/ClassFinalExam'
  ClassFinalExam:
    type: object
    properties:
      dataDisclosureWarning:
        type: string
      offeredTermCode:
        type: string
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseStartTermCode:
        type: string
      classNumber:
        type: string
      classSessionDisplayFormat:
        type: string
      finalExamCode:
        type: string
      finalExamDate:
        type: string
      finalExamDayOfWeek:
        type: string
      finalExamTimes:
        type: string
      finalExamLocation:
        type: string
  ClassDetailResponse:
    type: object
    properties:
      classDetail:
        $ref: '#/definitions/ClassDetail'
  ClassDetail:
    type: object
    properties:
      dataDisclosureWarning:
        type: string
      offeredTermCode:
        type: string
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseStartTermCode:
        type: string
      classNumber:
        type: string
      classNumberDisplay:
        type: string
      classDescription:
        type: string
      classNotesCollection:
        type: array
        items:
          $ref: '#/definitions/ClassNotes'
      classTitle:
        type: string
      classSessionCode:
        type: string
      classSessionDisplayFormat:
        type: string
      classSchedulePrintCode:
        type: string
      classStartDate:
        type: string
      classEndDate:
        type: string
      classWebsite:
        type: string
      classTextbook:
        type: string
      classMultipleTermGradingCode:
        type: string
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  ClassNotes:
    type: object
    properties:
      classNotes:
        type: string
  CourseCollection:
    type: object
    properties:
      courses:
        type: array
        items:
          $ref: '#/definitions/Course'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  Course:
    type: object
    properties:
      subjectAreaCode:
        type: string
      courseCatalogNumberCollection:
        type: array
        items:
          $ref: '#/definitions/CourseCatalogNumber'
  CourseCatalogNumber:
    type: object
    properties:
      courseCatalogNumber:
        type: string
      courseStartTermCode:
        type: string
  CourseDiversityResponse:
    type: object
    properties:
      courseDiversity:
        $ref: '#/definitions/CourseDiversity'
  CourseDiversity:
    type: object
    properties:
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseStartTermCode:
        type: string
      courseDiversityCollection:
        type: array
        items:
          $ref: '#/definitions/Diversity'
  Diversity:
    type: object
    properties:
      courseDiversityCollegeCode:
        type: string
      courseDiversityStartTermCode:
        type: string
      courseDiversityLastTermCode:
        type: string
  CourseGEFoundationResponse:
    type: object
    properties:
      courseGEFoundations:
        $ref: '#/definitions/CourseGEFoundation'
  CourseGEFoundation:
    type: object
    properties:
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseStartTermCode:
        type: string
      geFoundationCollection:
        type: array
        items:
          $ref: '#/definitions/GE'
      geAttributeCollection:
        type: array
        items:
          $ref: '#/definitions/CourseGEAttribute'
  GE:
    type: object
    properties:
      geFoundationCode:
        type: string
      geFoundationStartTermCode:
        type: string
      geFoundationCategoryCode:
        type: string
      geFoundationCategoryStartTermCode:
        type: string
      courseFoundationCategoryStartTermCode:
        type: string
      courseFoundationCategoryLastTermCode:
        type: string
  CourseGEAttribute:
    type: object
    properties:
      geAttributeCode:
        type: string
      geAttributeStartTermCode:
        type: string
      courseAttributeStartTermCode:
        type: string
      courseAttributeLastTermCode:
        type: string
  CourseDetailResponse:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      courseDetail:
        $ref: '#/definitions/CourseDetail'
  CourseDetail:
    type: object
    properties:
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseCatalogNumberDisplay:
        type: string
      courseStartTermCode:
        type: string
      courseLastTermCode:
        type: string
      courseCareerLevelCode:
        type: string
      courseLevelName:
        type: string
      courseShortTitle:
        type: string
      courseLongTitle:
        type: string
      courseSubtitleCollection:
        type: array
        items:
          $ref: '#/definitions/CourseSubtitle'
      courseDescription:
        type: string
      courseMaterialsFeeAmount:
        type: string
      individualStudiesFlag:
        type: string
      fiatLuxCourseFlag:
        type: string
      writingIICourseFlag:
        type: string
      impactedCourseFlag:
        type: string
      duplicateClassAllowedFlag:
        type: string
      equivalentCourseCollection:
        type: array
        items:
          $ref: '#/definitions/EquivalentCourse'
      multipleListedCourseCollection:
        type: array
        items:
          $ref: '#/definitions/MultipleListedCourse'
      concurrentCourseCollection:
        type: array
        items:
          $ref: '#/definitions/ConcurrentCourse'
      multiTermCourseSequenceNumber:
        type: string
      multiTermCourseCollection:
        type: array
        items:
          $ref: '#/definitions/MultiTerm'
      courseActivityCollection:
        type: array
        items:
          $ref: '#/definitions/CourseActivity'
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  CourseSubtitle:
    type: object
    properties:
      courseShortSubtitle:
        type: string
      courseLongSubtitle:
        type: string
  EquivalentCourse:
    type: object
    properties:
      equivalentSubjectAreaCode:
        type: string
      equivalentCourseCatalogNumber:
        type: string
      equivalentCourseStartTermCode:
        type: string
  MultipleListedCourse:
    type: object
    properties:
      multipleListedSubjectAreaCode:
        type: string
      multipleListedCourseCatalogNumber:
        type: string
      multipleListedCourseStartTermCode:
        type: string
  ConcurrentCourse:
    type: object
    properties:
      concurrentSubjectAreaCode:
        type: string
      concurrentCourseCatalogNumber:
        type: string
      concurrentCourseStartTermCode:
        type: string
  MultiTerm:
    type: object
    properties:
      multiTermSubjectAreaCode:
        type: string
      multiTermCourseCatalogNumber:
        type: string
      multiTermCourseStartTermCode:
        type: string
      multiTermCourseTotalNumber:
        type: string
  CourseActivity:
    type: object
    properties:
      courseActivityTypeCode:
        type: string
      coursePrimaryActivityFlag:
        type: string
      courseGradeTypeCode:
        type: string
      courseUnitTypeCode:
        type: string
      courseUnitCollection:
        type: array
        items:
          $ref: '#/definitions/CourseUnit'
  CourseUnit:
    type: object
    properties:
      courseUnit:
        type: string
  CourseRequisiteResponse:
    type: object
    properties:
      courseRequisite:
        $ref: '#/definitions/CourseRequisite'
  CourseRequisite:
    type: object
    properties:
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseStartTermCode:
        type: string
      requisiteCollection:
        type: array
        items:
          $ref: '#/definitions/Requisite'
  Requisite:
    type: object
    properties:
      requisiteSequenceNumber:
        type: string
      requisiteCourseName:
        type: string
      requisiteCourseStartTerm:
        type: string
      requisiteCourseMinimumUnits:
        type: string
      requisiteCourseMinimumLetterGrade:
        type: string
      requisiteLogicalConnectorCode:
        type: string
      requisiteConnectorLeftParenthesis1:
        type: string
      requisiteConnectorLeftParenthesis2:
        type: string
      requisiteConnectorLeftParenthesis3:
        type: string
      requisiteConnectorRightParenthesis1:
        type: string
      requisiteConnectorRightParenthesis2:
        type: string
      requisiteConnectorRightParenthesis3:
        type: string
      coRequisiteFlag:
        type: string
      preRequisiteFlag:
        type: string
      requisiteSeverityText:
        type: string
  AcademicActionCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      academicActions:
        type: array
        items:
          $ref: '#/definitions/AcademicAction'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  AcademicAction:
    type: object
    properties:
      academicActionCode:
        type: string
      academicActionDescription:
        type: string
  ActivityTypeCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      activityTypes:
        type: array
        items:
          $ref: '#/definitions/ActivityType'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  ActivityType:
    type: object
    properties:
      activityTypeCode:
        type: string
      activityTypeName:
        type: string
  AffiliationsTermSessionCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      affiliationsTermSessions:
        type: array
        items:
          $ref: '#/definitions/AffiliationsTermSession'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  AffiliationsTermSession:
    type: object
    properties:
      affiliationName:
        type: string
      termSessionCode:
        type: string
  BuildingCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      buildings:
        type: array
        items:
          $ref: '#/definitions/Building'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  Building:
    type: object
    properties:
      buildingCode:
        type: string
      buildingName:
        type: string
  CareerCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      careers:
        type: array
        items:
          $ref: '#/definitions/Career'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  Career:
    type: object
    properties:
      careerCode:
        type: string
      careerName:
        type: string
  CityCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      cities:
        type: array
        items:
          $ref: '#/definitions/City'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  City:
    type: object
    properties:
      universityLocationCode:
        type: string
      cityName:
        type: string
      cityStartTermCode:
        type: string
      cityStartDate:
        type: string
      cityLastTermCode:
        type: string
      cityLastDate:
        type: string
      universityLocationStartTermCode:
        type: string
  ClassLevelCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      classLevels:
        type: array
        items:
          $ref: '#/definitions/ClassLevel'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  ClassLevel:
    type: object
    properties:
      classLevelCode:
        type: string
      classLevelName:
        type: string
  ClassNumbersCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      classNumbers:
        type: array
        items:
          $ref: '#/definitions/ClassNumbers'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  ClassNumbers:
    type: object
    properties:
      classNumber:
        type: string
      displayClassNumber:
        type: string
  EnrollmentStatusCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      enrollmentStatuses:
        type: array
        items:
          $ref: '#/definitions/EnrollmentStatus'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  EnrollmentStatus:
    type: object
    properties:
      classSectionEnrollmentStatusCode:
        type: string
      classSectionEnrollmentStatusDescription:
        type: string
  ClassSectionNumbersCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      classSectionNumbers:
        type: array
        items:
          $ref: '#/definitions/ClassSectionNumbers'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pa

# --- truncated at 32 KB (346 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ucla/refs/heads/main/openapi/ucla-sis-courses-openapi.yml