University of California, Santa Barbara Schedules API

The Schedules API from University of California, Santa Barbara — 7 operation(s) for schedules.

Operations 7

GET /subjects/term Get subjects term #
GET /subjects Get subjects #
GET /subjects/{subjectcode} Get subjects by subjectcode #
GET /skills/term Get skills term #
GET /skills Get skills #
GET /skills/{skillcode} Get skills by skillcode #
GET /v1/schedules/{perm}/{quarter} /v1/schedules/{perm}/{quarter} #

Documentation

📖
Documentation
https://developer.ucsb.edu/content/academic-curriculums
📖
Documentation
https://developer.ucsb.edu/content/academic-graduate-programs
📖
Documentation
https://developer.ucsb.edu/content/academic-quarter-calendar
📖
Documentation
https://developer.ucsb.edu/content/barc-quarter-calendar
📖
Documentation
https://developer.ucsb.edu/content/barc-students-api
📖
Documentation
https://developer.ucsb.edu/content/academic-clas-schedules
📖
Documentation
https://developer.ucsb.edu/content/classcode-lookup-service
📖
Documentation
https://developer.ucsb.edu/content/department-chartfield
📖
Documentation
https://developer.ucsb.edu/content/department-course-extract
📖
Documentation
https://developer.ucsb.edu/content/employee-job
📖
Documentation
https://developer.ucsb.edu/content/events
📖
Documentation
https://developer.ucsb.edu/content/grad-application-verifications
📖
Documentation
https://developer.ucsb.edu/content/mtd-access
📖
Documentation
https://developer.ucsb.edu/content/peoplesoft-fau-functional-accounting-unit-combination-service
📖
Documentation
https://developer.ucsb.edu/content/student-academic-programs-majors-minors
📖
Documentation
https://developer.ucsb.edu/content/student-basic-student-info
📖
Documentation
https://developer.ucsb.edu/content/student-courses
📖
Documentation
https://developer.ucsb.edu/content/student-record-code-lookups
📖
Documentation
https://developer.ucsb.edu/content/student-registrations
📖
Documentation
https://developer.ucsb.edu/content/student-rosters
📖
Documentation
https://developer.ucsb.edu/content/student-schedules

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ucsb-schedules-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ucsb-schedules-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Ucsb Schedules API
  version: '1.0'
  description: 'Operations tagged Schedules across 2 of this provider''s published API definitions: schedules-v1.drupal.yaml, schedules-v1.out_.api_.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.ucsb.edu/academics/clas/schedules/v1
- url: https://api.ucsb.edu/students/schedules
tags:
- name: Schedules
paths:
  /subjects/term:
    get:
      tags:
      - Schedules
      parameters:
      - name: ucsb-api-version
        in: header
        required: true
        schema:
          type: string
          default: '1.0'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/TermInfo'
            application/json:
              schema:
                $ref: '#/components/schemas/TermInfo'
            text/json:
              schema:
                $ref: '#/components/schemas/TermInfo'
        '400':
          description: Bad or malformed request. This returns a Problem Details object (https://tools.ietf.org/html/rfc7807).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        x-400-apiversion:
          description: If the ApiVersion information cannot be inferred correctly, an error message describing the issue is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiVersionError'
      security:
      - ucsb-api-key: []
      - basicAuth: []
      summary: Get subjects term
      x-summary-source: derived
      operationId: getSubjectsTerm
      x-operation-id-source: derived
    servers:
    - url: https://api.ucsb.edu/academics/clas/schedules/v1
  /subjects:
    get:
      tags:
      - Schedules
      parameters:
      - name: ucsb-api-version
        in: header
        required: true
        schema:
          type: string
          default: '1.0'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Subject'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Subject'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Subject'
        '400':
          description: Bad or malformed request. This returns a Problem Details object (https://tools.ietf.org/html/rfc7807).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        x-400-apiversion:
          description: If the ApiVersion information cannot be inferred correctly, an error message describing the issue is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiVersionError'
      security:
      - ucsb-api-key: []
      - basicAuth: []
      summary: Get subjects
      x-summary-source: derived
      operationId: getSubjects
      x-operation-id-source: derived
    servers:
    - url: https://api.ucsb.edu/academics/clas/schedules/v1
  /subjects/{subjectcode}:
    get:
      tags:
      - Schedules
      parameters:
      - name: subjectcode
        in: path
        required: true
        schema:
          type: string
      - name: ucsb-api-version
        in: header
        required: true
        schema:
          type: string
          default: '1.0'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Schedule'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Schedule'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Schedule'
        '400':
          description: Bad or malformed request. This returns a Problem Details object (https://tools.ietf.org/html/rfc7807).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        x-400-apiversion:
          description: If the ApiVersion information cannot be inferred correctly, an error message describing the issue is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiVersionError'
      security:
      - ucsb-api-key: []
      - basicAuth: []
      summary: Get subjects by subjectcode
      x-summary-source: derived
      operationId: getSubjectsBySubjectcode
      x-operation-id-source: derived
    servers:
    - url: https://api.ucsb.edu/academics/clas/schedules/v1
  /skills/term:
    get:
      tags:
      - Schedules
      parameters:
      - name: ucsb-api-version
        in: header
        required: true
        schema:
          type: string
          default: '1.0'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/TermInfo'
            application/json:
              schema:
                $ref: '#/components/schemas/TermInfo'
            text/json:
              schema:
                $ref: '#/components/schemas/TermInfo'
        '400':
          description: Bad or malformed request. This returns a Problem Details object (https://tools.ietf.org/html/rfc7807).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        x-400-apiversion:
          description: If the ApiVersion information cannot be inferred correctly, an error message describing the issue is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiVersionError'
      security:
      - ucsb-api-key: []
      - basicAuth: []
      summary: Get skills term
      x-summary-source: derived
      operationId: getSkillsTerm
      x-operation-id-source: derived
    servers:
    - url: https://api.ucsb.edu/academics/clas/schedules/v1
  /skills:
    get:
      tags:
      - Schedules
      parameters:
      - name: ucsb-api-version
        in: header
        required: true
        schema:
          type: string
          default: '1.0'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkshopCategory'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkshopCategory'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkshopCategory'
        '400':
          description: Bad or malformed request. This returns a Problem Details object (https://tools.ietf.org/html/rfc7807).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        x-400-apiversion:
          description: If the ApiVersion information cannot be inferred correctly, an error message describing the issue is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiVersionError'
      security:
      - ucsb-api-key: []
      - basicAuth: []
      summary: Get skills
      x-summary-source: derived
      operationId: getSkills
      x-operation-id-source: derived
    servers:
    - url: https://api.ucsb.edu/academics/clas/schedules/v1
  /skills/{skillcode}:
    get:
      tags:
      - Schedules
      parameters:
      - name: skillcode
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: ucsb-api-version
        in: header
        required: true
        schema:
          type: string
          default: '1.0'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkshopTitle'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkshopTitle'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkshopTitle'
        '400':
          description: Bad or malformed request. This returns a Problem Details object (https://tools.ietf.org/html/rfc7807).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        x-400-apiversion:
          description: If the ApiVersion information cannot be inferred correctly, an error message describing the issue is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiVersionError'
      security:
      - ucsb-api-key: []
      - basicAuth: []
      summary: Get skills by skillcode
      x-summary-source: derived
      operationId: getSkillsBySkillcode
      x-operation-id-source: derived
    servers:
    - url: https://api.ucsb.edu/academics/clas/schedules/v1
  /v1/schedules/{perm}/{quarter}:
    get:
      tags:
      - Schedules
      operationId: /v1/schedules/{perm}/{quarter}
      parameters:
      - name: perm
        in: path
        description: Students 6 or 7 digit perm
        required: true
        schema:
          type: string
      - name: quarter
        in: path
        description: Quarter with format YYYYQ
        required: true
        schema:
          type: string
      - name: ucsb-user-jwt
        in: header
        description: Used when an application is required to provide an End User Token. Only the data for the student indicated by the End User Token will be retrieved.
        required: false
        schema:
          type: string
      - name: ucsb-api-version
        in: header
        description: Specific api version to use.
        required: false
        schema:
          type: string
          default: '1.0'
      responses:
        '200':
          description: Return the list of courses in a students schedule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StudentScheduleCourse'
            text/json:
              schema:
                $ref: '#/components/schemas/StudentScheduleCourse'
        '400':
          description: Bad or malformed request. See response body for details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebApiInvalidModel'
            text/json:
              schema:
                $ref: '#/components/schemas/WebApiInvalidModel'
        '401':
          description: Unauthorized. See response body for details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimpleMessageModel'
            text/json:
              schema:
                $ref: '#/components/schemas/SimpleMessageModel'
        '404':
          description: Resource cannot be found. See response body for details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimpleMessageModel'
            text/json:
              schema:
                $ref: '#/components/schemas/SimpleMessageModel'
      description: Search for student schedule by perm and quarter. While schedule information can be returned from any quarter the endpoint is intended to provide schedule information for the current quarter. The course information returned will contain the time and classroom of the course along with instructor information.
      security:
      - ucsb-api-key: []
      - BasicAuth: []
      summary: /v1/schedules/{perm}/{quarter}
      x-summary-source: derived
    servers:
    - url: https://api.ucsb.edu/students/schedules
components:
  schemas:
    EnrollDates:
      required:
      - term
      type: object
      properties:
        enrollDatesPk:
          type: integer
          description: Unique Id of the Alpha Object
          format: int32
        term:
          maxLength: 5
          minLength: 0
          type: string
          description: The term
        session:
          maxLength: 1
          minLength: 0
          type:
          - string
          - 'null'
          description: The session
        enrollStart:
          type: string
          description: Enroll Start
          format: date-time
        enrollEnd:
          type: string
          description: Enroll End
          format: date-time
      additionalProperties: false
    WorkshopSchedule:
      type: object
      properties:
        workshopCategoryPk:
          type: integer
          format: int32
        workshopSkillClassPk:
          type: integer
          format: int32
        workshopCode:
          type:
          - string
          - 'null'
        workshopDate:
          type:
          - string
          - 'null'
        workshopTime:
          type:
          - string
          - 'null'
        sessionCount:
          type: integer
          format: int32
      additionalProperties: false
    Subject:
      required:
      - subjectCode
      type: object
      properties:
        subjectCode:
          maxLength: 5
          minLength: 0
          type: string
        subjectName:
          maxLength: 25
          minLength: 0
          type:
          - string
          - 'null'
        schedules:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Schedule'
      additionalProperties: false
    ApiVersionError:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/ApiVersionErrorDetail'
      additionalProperties: false
    ProblemDetails:
      type: object
      properties:
        type:
          type:
          - string
          - 'null'
        title:
          type:
          - string
          - 'null'
        status:
          type:
          - integer
          - 'null'
          format: int32
        detail:
          type:
          - string
          - 'null'
        instance:
          type:
          - string
          - 'null'
      additionalProperties: {}
    WorkshopTitle:
      type: object
      properties:
        workshopCategoryPk:
          type: integer
          format: int32
        workshopSkillClassPk:
          type: integer
          format: int32
        workshopTitleName:
          type:
          - string
          - 'null'
        htmlDescription:
          type:
          - string
          - 'null'
        workshopSchedules:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/WorkshopSchedule'
      additionalProperties: false
    ApiVersionErrorDetail:
      type: object
      properties:
        code:
          type:
          - string
          - 'null'
        message:
          type:
          - string
          - 'null'
        target:
          type:
          - string
          - 'null'
        innerError:
          type:
          - string
          - 'null'
        details:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ApiVersionErrorDetail'
      additionalProperties: false
    WorkshopCategory:
      type: object
      properties:
        term:
          type:
          - string
          - 'null'
        workshopCategoryPk:
          type: integer
          format: int32
        workshopCategoryName:
          type:
          - string
          - 'null'
        workshopTitles:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/WorkshopTitle'
      additionalProperties: false
    Schedule:
      type: object
      properties:
        subjectCode:
          type:
          - string
          - 'null'
        subjectName:
          type:
          - string
          - 'null'
        courseNo:
          type:
          - string
          - 'null'
        session:
          type:
          - string
          - 'null'
        instructor:
          type:
          - string
          - 'null'
        groupLecturePK:
          type: integer
          format: int32
        lectureDays:
          type:
          - string
          - 'null'
        lectureTime:
          type:
          - string
          - 'null'
        lectureLocation:
          type:
          - string
          - 'null'
        groupCode:
          type:
          - string
          - 'null'
        tutor:
          type:
          - string
          - 'null'
        groupDays:
          type:
          - string
          - 'null'
        groupTime:
          type:
          - string
          - 'null'
        isNew:
          type: boolean
      additionalProperties: false
    TermInfo:
      type: object
      properties:
        term:
          type:
          - string
          - 'null'
        quarter:
          type:
          - string
          - 'null'
        year:
          type:
          - string
          - 'null'
        isSession:
          type: boolean
        enrollDates:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/EnrollDates'
        message:
          type:
          - string
          - 'null'
      additionalProperties: false
    ScheduleTimeLocation:
      description: Time Location data for course
      type: object
      properties:
        section:
          description: Course section student enrolled in
          type: string
        instructionTypeCode:
          description: 'Instruction Type ex Lec , Dis etc

            See more InstructionTypeCode and InstructionTypeTranslation on InstructionType interface

            on Public Lookups API'
          type: string
        days:
          description: 'Days of Instruction for course for example ''M W    '' means instruction happens on Monday and wednesday

            For mode translation on day code look at Days interface at public api'
          type: string
        beginTime:
          description: 'Begin time for a course

            HH:mm format'
          type: string
        endTime:
          description: 'End time of the course

            HH:mm format'
          type: string
        buildingRoom:
          description: location of course
          type: string
        instructors:
          description: Time location instructor list
          type: array
          items:
            $ref: '#/components/schemas/TimeLocationInstructor'
    TimeLocationInstructor:
      description: Instructor assigned to a course
      type: object
      properties:
        name:
          description: Name of the Instructor
          type: string
        functionCode:
          description: 'Instruction Function.

            See more InstructionFunctionCode and InstructionFunctionTranslation on InstructionFunction interface

            See translation on public lookup api'
          type: string
    StudentScheduleCourse:
      description: Student Schedule data includes course, time location and instructor data
      type: object
      properties:
        courseId:
          description: '13 character course Id with format SSSSSPPPNNNNUUU, Fist 5 char is course subject,

            Next 3 char is course prefix then next 3 char is course number

            and last 2 char is course suffix. For example ''ES   1-  16B ''

            can be broken down in subject ''ES   '' prefix ''1- '' number '' 16'' suffix ''B '''
          type: string
        quarter:
          description: Quarter with format YYYYQ
          type: string
        enrollCode:
          description: 'EnrollCode an unique number assigned

            to a curriculum'
          type: string
        gradingOptionCode:
          description: 'Grading Options Code like Pass/No Pass (P/NP)

            Or Letter Grades (L)

            See more GradingOptionsCode and GradingOptionsTranslation on GradingOptions interface

            on Public Lookups API'
          type: string
        unitsAttempted:
          format: double
          description: 'Total number of units attempted by the student

            for the course'
          type: number
        courseTitle:
          description: Course Title from curriculum catalog
          type: string
        session:
          description: Session number only for summer quarter
          type: string
        repeatTypeCode:
          description: 'Repeat type for a course

            See more RepeatTypeCode and RepeatTypeTranslation on RepeatType interface

            on Public Lookups API'
          type: string
        timeLocations:
          description: Schedule Time locations list with instructor data
          type: array
          items:
            $ref: '#/components/schemas/ScheduleTimeLocation'
    WebApiInvalidModel:
      type: object
      properties:
        message:
          type: string
        modelState:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
    SimpleMessageModel:
      type: object
      properties:
        message:
          type: string
  securitySchemes:
    ucsb-api-key:
      name: ucsb-api-key
      in: header
      type: apiKey
    basicAuth:
      type: http
      scheme: basic
    BasicAuth:
      type: http
      scheme: basic
x-refined-from:
- schedules-v1.drupal.yaml
- schedules-v1.out_.api_.yaml