# x-archived-from: university-of-auckland-course-catalog-v3-openapi.yml # x-archived-on: 2026-09-16 # University of Auckland — Course Catalog Api V3 # generated: '2026-08-30' # method: searched # source: https://developer.auckland.ac.nz/prd/documentation/api-course-catalog-v3 (OpenAPI 3.1.0 embedded in the University's own Kong developer portal) # x-operator: institution — servers[] and info.contact are both under auckland.ac.nz # Saved VERBATIM. Known defects in the University's own document are NOT corrected here: # servers[0].url is published as 'httpss://apis.auckland.ac.nz/courses/v3' (typo). The # probed, working base URL is https://apis.auckland.ac.nz/courses/v3 (401 without a key). openapi: 3.1.0 info: title: Course Catalog Api V3 description: Exposes some course information by querying CS9 views. Read only API. version: '3.0' contact: name: Student Recruitment email: student-recruitment@list.auckland.ac.nz servers: - url: httpss://apis.auckland.ac.nz/courses/v3 description: '' tags: - name: Courses API description: Courses API - name: Reference Data API description: Reference Data API - name: api paths: /cache/reload/collections: post: tags: - Reference Data API description: Reload in-memory caches operationId: reloadCollectionsPost responses: '200': description: Success content: '*/*': schema: type: string /terms: get: tags: - Reference Data API description: Search for terms operationId: termsGet parameters: - name: year in: query description: Limit to terms in this academic year required: false schema: type: string maxLength: 4 minLength: 0 - name: acadCareer in: query description: Limit to this academic career code required: false schema: type: string default: UC01 maxLength: 4 minLength: 0 - name: from in: query description: Offset the list of returned results by this amount. Default is zero. required: false schema: type: string default: '0' - name: size in: query description: Number of items to retrieve. Default is 100, maximum is 5000. required: false schema: type: string default: '100' responses: '200': description: All Terms matching the filter content: '*/*': schema: type: string '400': description: Unexpected error content: '*/*': schema: $ref: '#/components/schemas/TermsList' /terms/{termCode}: get: tags: - Reference Data API description: Search for terms by code operationId: termsTermCodeGet parameters: - name: termCode in: path description: term code, e.g. "1173" required: true schema: type: string maxLength: 20 minLength: 0 - name: acadCareer in: query description: 'For a specified acad career. Example: UC02' required: false schema: type: string default: UC01 maxLength: 4 minLength: 0 responses: '200': description: Term, if found content: '*/*': schema: $ref: '#/components/schemas/Term' '400': description: Unexpected error content: '*/*': schema: $ref: '#/components/schemas/Term' '404': description: Term not found content: '*/*': schema: $ref: '#/components/schemas/Term' /subjects: get: tags: - Reference Data API description: Search for subjects operationId: subjectsGet parameters: - name: effectiveYear in: query description: 'Limit subjects to only those active on this year, ex: 2014' required: false schema: type: string maxLength: 4 minLength: 0 - name: effectiveStatus in: query description: 'Limit subjects to only those with the given effective status, ex: A' required: false schema: type: string maxLength: 1 minLength: 0 - name: courseCareer in: query description: 'Limit subjects to only those with courses available under the given academic career, ex: UC01' required: false schema: type: string maxLength: 4 minLength: 0 - name: includeOnlyActiveCourses in: query description: Limit subjects to only those with active courses required: false schema: type: boolean - name: includeOnlyMainProgram in: query description: Limit subjects to only those with main programme related courses required: false schema: type: boolean - name: includeOnlyMicrocredentials in: query description: Limit subjects to only those with active courses required: false schema: type: boolean responses: '200': description: Subjects content: '*/*': schema: type: string '400': description: Unexpected error content: '*/*': schema: type: string /subject/{subject}/courses: get: tags: - Courses API description: Search for courses by subject operationId: coursesGetBySubject parameters: - name: subject in: path description: Subject required: true schema: type: string default: COMLAW maxLength: 50 minLength: 0 - name: from in: query description: Offset the list of returned results by this amount. required: false schema: type: integer format: int32 - name: size in: query description: Number of items to retrieve. No default. required: false schema: type: integer format: int32 responses: '200': description: An array of products content: '*/*': schema: $ref: '#/components/schemas/CourseList' '400': description: Unexpected error content: '*/*': schema: type: string /courses: get: tags: - Courses API description: Search for courses operationId: coursesGet parameters: - name: text in: query description: Search text, eg. students or Spectroscopy required: false schema: type: string maxLength: 200 minLength: 0 - name: subject in: query description: Subject required: false schema: type: string maxLength: 50 minLength: 0 - name: catalogNbr in: query description: Catalogue number required: false schema: type: string maxLength: 50 minLength: 0 - name: year in: query description: Course year, e.x. 2014, or empty (current) or 'latestActive required: false schema: type: string maxLength: 20 minLength: 0 - name: level in: query description: Level required: false schema: type: integer format: int64 - name: acadGroup in: query description: Academic Group required: false schema: type: string maxLength: 50 minLength: 0 - name: acadOrg in: query description: Academic Org required: false schema: type: string maxLength: 50 minLength: 0 - name: acadCareer in: query description: Academic Career required: false schema: type: string maxLength: 10 minLength: 0 - name: mainProgram in: query description: Main Programme Code required: false schema: type: string maxLength: 50 minLength: 0 - name: mainProgramRelated in: query description: Main Programme Related. Return the courses related to main programme as default. required: false schema: type: boolean default: true - name: effStatus in: query description: Effective Status required: false schema: type: string maxLength: 1 minLength: 0 - name: microcredential in: query description: Microcredential flag required: false schema: type: boolean - name: from in: query description: Offset the list of returned results by this amount. Default is zero. required: false schema: type: string default: '0' - name: size in: query description: Number of items to retrieve. Defaults to 500. required: false schema: type: integer format: int32 default: 500 responses: '200': description: An array of courses content: '*/*': schema: $ref: '#/components/schemas/CourseList' '400': description: Unexpected error content: '*/*': schema: type: string /course/{id}: get: tags: - Courses API description: Get course by id operationId: courseIdGet parameters: - name: id in: path description: Course's unique id, e.g. 001342 or 040230 or 036707 required: true schema: type: string maxLength: 50 minLength: 0 - name: year in: query description: Course year, e.g. 2003. Use `latestActive` to get the record from last active year. If not specified, defaults to a current year. required: false schema: type: string maxLength: 20 minLength: 0 responses: '200': description: Course content: '*/*': schema: $ref: '#/components/schemas/Course' '400': description: Unexpected error content: '*/*': schema: type: string /consentCodes: get: tags: - Reference Data API description: Search for consent codes operationId: consentCodesGet responses: '200': description: Map of code to description content: '*/*': schema: type: string '400': description: Unexpected error content: '*/*': schema: type: string /componentCodes: get: tags: - Reference Data API description: Search for course component codes operationId: componentCodesGet parameters: - name: includeInactive in: query description: Include inactive records required: false schema: type: string default: 'false' responses: '200': description: Map of code to description content: '*/*': schema: type: string '400': description: Unexpected error content: '*/*': schema: type: string /acadOrgs: get: tags: - Reference Data API description: Search for academic organisations operationId: acadOrgsGet parameters: - name: includeInactive in: query description: Include inactive records required: false schema: type: string default: 'false' responses: '200': description: Map of code to description content: '*/*': schema: type: string '400': description: Unexpected error content: '*/*': schema: type: string /acadGroups: get: tags: - Reference Data API description: Search for academic groups operationId: acadGroupsGet parameters: - name: includeInactive in: query description: Include inactive records required: false schema: type: string default: 'false' responses: '200': description: Map of code to description content: '*/*': schema: type: string '400': description: Unexpected error content: '*/*': schema: type: string /acadCareers: get: tags: - Reference Data API description: Search for academic careers operationId: acadCareersGet parameters: - name: includeInactive in: query description: Include inactive records required: false schema: type: string default: 'false' responses: '200': description: Map of code to description content: '*/*': schema: type: string '400': description: Unexpected error content: '*/*': schema: type: string components: schemas: Term: type: object properties: code: type: string description: type: string shortDescription: type: string startDate: type: string endDate: type: string acadCareer: type: string enrolOpenDate: type: string TermsList: type: object properties: data: type: array items: $ref: '#/components/schemas/Term' total: type: integer format: int64 Course: type: object properties: id: type: string year: type: integer format: int32 active: type: string level: type: integer format: int32 feeBand: type: string crseId: type: string crseOfferNbr: type: integer format: int32 effdt: type: string effdtOffer: type: string acadCareer: type: string acadGroup: type: string acadOrg: type: string subject: type: string catalogNbr: type: string titleLong: type: string title: type: string description: type: string text: type: array items: type: string catalogPrint: type: string componentPrimary: type: string gradingBasis: type: string rqrmntGroup: type: string rqrmntDescr: type: string splitOwner: type: string unitsAcadProg: type: number format: double ssrComponent: type: string mainProgram: type: string effStatus: type: string microcredential: type: boolean CourseList: type: object properties: data: type: array items: $ref: '#/components/schemas/Course' from: type: integer format: int32 size: type: integer format: int32 total: type: integer format: int32 more: type: boolean securitySchemes: apikey: type: apiKey x-headmatter: readable_by: []