UCSB Student Rosters

The roster of students enrolled in a course section. Access Approval Required; FERPA-governed. Published as Swagger 2.0, 1 path, base https://api.ucsb.edu/students.

Operations 1

GET /rosters/v1/rosters/{quarter} #

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-rosters"
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-rosters-openapi.yml Raw ↑
swagger: '2.0'
info:
  version: v1
  title: Students Rosters
  description: 'Course roster information from the Office of the Registrar. This API is designed to return
    a list of student perm numbers that are enrolled within courses. This API allows for querying courses
    at a department level and can be used to help determine student populations that will be input for
    other systems. It is different from the Courses API and Schedules API as it doesn''t focus on individual,
    but instead focuses on lists of students which are enrolled in courses.

    <br /><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/rosters-v1.out_.api_.yaml
  x-last-validated: '2026-08-30'
  x-operator: institution
host: api.ucsb.edu
basePath: /students
schemes:
- https
securityDefinitions:
  ucsb-api-key:
    name: ucsb-api-key
    in: header
    type: apiKey
  BasicAuth:
    type: basic
security:
- ucsb-api-key: []
- BasicAuth: []
paths:
  /rosters/v1/rosters/{quarter}:
    get:
      tags:
      - Rosters
      operationId: /rosters/v1/rosters/{quarter}
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: quarter
        in: path
        description: Quarter with format YYYYQ
        required: true
        type: string
      - name: deptCode
        in: query
        description: 5 character department code, which can be found in the Student Record Lookup API.
        required: false
        type: string
      - name: courseId
        in: query
        description: "13 character course Id with format SSSSSPPPNNNNUUU , First 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 '"
        required: false
        type: string
      - name: objLevelCode
        in: query
        description: 1 character code, The academic program objective level must be 'G'raduate or 'U'ndergraduate.
        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: Get Rosters For department or Course.
          schema:
            $ref: '#/definitions/RosterCourse'
        '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 rosters for a quarter and either Department code or Course Id and optional\
        \ Objective level.\r\nThe rosters returned has primary course information such as enroll code,\
        \ courseId and List of Students enrolled in each sections."
definitions:
  HealthcheckMessage:
    type: object
    properties:
      component:
        type: string
      message:
        type: string
  RosterCourse:
    description: Roster data includes course and Enrollment in Sections
    type: object
    properties:
      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
      quarter:
        description: Quarter with format YYYYQ
        type: string
      enrollCode:
        description: "EnrollCode an unique number assigned\r\nto a curriculum"
        type: string
      session:
        description: Session number only for summer quarter
        type: string
      sections:
        description: Roster data for Each section of course
        type: array
        items:
          $ref: '#/definitions/RosterSection'
  RosterSection:
    description: Roster data for the Non primary sections
    type: object
    properties:
      section:
        description: Section Number for a course
        type: string
      enrollCode:
        description: "EnrollCode an unique number assigned\r\nto a curriculum"
        type: string
      rosters:
        description: Roster data for the section
        type: array
        items:
          $ref: '#/definitions/Roster'
  Roster:
    description: Roster of Enrolled Students in Section
    type: object
    properties:
      perm:
        description: Student 7 digit perm
        type: string
      unitsAttempted:
        format: double
        description: "Total number of units attempted by the student\r\nfor the 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