UCSB Student Courses

The courses a student is enrolled in for a quarter. Access Approval Required; FERPA-governed. Its base path /students/courses is the exact nesting UCSB’s own published design standard tells campus teams not to do. Published as Swagger 2.0, 1 path, base https://api.ucsb.edu/students/courses.

Operations 1

GET /v1/courses/{perm} #

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/student-courses"
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-student-courses-openapi.yml Raw ↑
swagger: '2.0'
info:
  version: v1
  title: Student Courses
  description: 'Student Course information from the Office of the Registrar. This service contains information
    about the students academic history, including their grades. While this endpoint provides information
    on the current quarter, it is intended to look at the historical information about an individual student''s
    record.<br />

    The BasicAuth header is a base64-encoded(ucsbNetId:password) combination. The ucsbNetId/password combination
    should be of a service account registered with the Campus Identity systems (ETS, the Campus LDAP).
    This ucsbNetId needs to be supplied to the Office of the Registrar as part of the approval process.'
  x-source-url: https://developer.ucsb.edu/sites/default/files/openapi/courses-v1.out_.api_.yaml
  x-last-validated: '2026-08-30'
  x-operator: institution
host: api.ucsb.edu
basePath: /students/courses
schemes:
- https
securityDefinitions:
  ucsb-api-key:
    name: ucsb-api-key
    in: header
    type: apiKey
  ucsbnetid-password:
    type: basic
security:
- ucsb-api-key: []
- ucsbnetid-password: []
paths:
  /v1/courses/{perm}:
    get:
      tags:
      - Courses
      operationId: /courses/v1/courses/{perm}
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: perm
        in: path
        description: Students 6 or 7 digit perm
        required: true
        type: string
      - name: quarter
        in: query
        description: Quarter with format YYYYQ
        required: false
        type: string
      - name: enrollCode
        in: query
        description: Enroll code should be 5 chars
        required: false
        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
        type: string
      - name: ucsb-api-version
        in: header
        description: Specific api version to use.
        required: false
        type: string
        default: '1.0'
      responses:
        '200':
          description: Basic course information for student.
          schema:
            $ref: '#/definitions/Course'
        '400':
          description: Bad or malformed request. See response body for details.
          schema:
            $ref: '#/definitions/WebApiInvalidModel'
        '401':
          description: Unauthorized. See response body for details.
          schema:
            $ref: '#/definitions/SimpleMessageModel'
        '404':
          description: Resource cannot be found. See response body for details.
          schema:
            $ref: '#/definitions/SimpleMessageModel'
      description: Search for courses in which student is registered. All the courses for that student
        can be returned when search by perm and quarter/enroll code. Perm is required for search and either
        quarter and enroll code can be both used. Returned is the collection of courses for student enrollment.<br
        /> <br /> This service contains information about the students academic history, including their
        grades. While this endpoint provides information on the current quarter, it is intended to look
        at the historical information about an individual student's record.
definitions:
  Course:
    description: "Course Entity represent\r\nCourse Data student enrolled in"
    type: object
    properties:
      perm:
        description: Student 7 digit perm
        type: string
      quarter:
        description: Quarter with format YYYYQ
        type: string
      courseId:
        description: "13 character course Id with format SSSSSPPPNNNNUUU , Fist 5 char is course subject,\r\
          \nNext 3 char is course prefix then next 3 char is course number\r\nand last 2 char is course\
          \ suffix. For example 'ES   1-  16B '\r\ncan be broken down in subject 'ES   ' prefix '1- '\
          \ number ' 16' suffix 'B '"
        type: string
      enrollCode:
        description: "EnrollCode an unique number assigned\r\nto a curriculum"
        type: string
      session:
        description: "Session of the curriculum in which\r\nStudent is enrolled for summer"
        type: string
      grade:
        description: Grade assigned for the Course
        type: string
      repeatTypeCode:
        description: "Repeat type for a course\r\nSee more RepeatTypeCode and RepeatTypeTranslation on\
          \ RepeatType interface\r\non Public Lookups API"
        type: string
      unitsAttempted:
        format: double
        description: "Total number of units attempted by the student\r\nfor the course"
        type: number
      unitsCompleted:
        format: double
        description: "units completed by student during\r\nthe course"
        type: number
  WebApiInvalidModel:
    type: object
    properties:
      message:
        type: string
      modelState:
        type: object
        additionalProperties:
          type: array
          items:
            type: string
  SimpleMessageModel:
    type: object
    properties:
      message:
        type: string