Class
A class offering in a UCSB quarter curriculum, including units, general-education codes and its sections.
EducationHigher EducationUniversityPublic Research UniversityUC SystemUnited StatesCaliforniaCampusStudent Information SystemCourse CatalogAcademicsIdentity FederationResearch RepositoryLibraryAPI GatewayDeveloper Portal
Properties
| Name | Type | Description |
|---|---|---|
| quarter | string | Quarter with format YYYYQ |
| courseId | string | 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- |
| title | string | Course Title from curriculum catalog |
| contactHours | number | Primary hours for course |
| description | string | Detail descriptions for the course |
| college | string | College code approved for the course please refer to Student Record Code Lookups API for translations |
| objLevelCode | string | 1 character code, The academic program objective level must be 'G'raduate or 'U'ndergraduate , 'L' for Undergraduate lower division and 'S' for Undergraduate upper division |
| subjectArea | string | The subject code to match First 8 Char of CourseId |
| unitsFixed | number | Number of fixed units for the course |
| unitsVariableHigh | number | Number of variable units for the course |
| unitsVariableLow | number | Number of low units for the course |
| delayedSectioning | string | delayed sectioning for the course |
| inProgressCourse | string | If course is in progress |
| gradingOption | string | Grading options for the course |
| instructionType | string | Instruction type for primary sections (ending with 00) |
| instructionTypeSecondary | string | Instruction type for secondary sections (ending with a number > 00) |
| onLineCourse | boolean | If the course is online ? |
| deptCode | string | department code for the course please refer look up api for translations |
| generalEducation | array | list of GeCode and GeCollege |
| classSections | array | list of sections associated with the class |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/ucsb/main/json-schema/ucsb-class-schema.json",
"title": "Class",
"description": "A class offering in a UCSB quarter curriculum, including units, general-education codes and its sections.",
"type": "object",
"properties": {
"quarter": {
"description": "Quarter with format YYYYQ",
"type": "string"
},
"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.\r\nFor example 'ES 1- 16B ' can be broken down in subject 'ES ' prefix '1- ' number ' 16' suffix 'B",
"type": "string"
},
"title": {
"description": "Course Title from curriculum catalog",
"type": "string"
},
"contactHours": {
"format": "double",
"description": "Primary hours for course",
"type": "number"
},
"description": {
"description": "Detail descriptions for the course",
"type": "string"
},
"college": {
"description": "College code approved for the course\r\nplease refer to Student Record Code Lookups API for translations",
"type": "string"
},
"objLevelCode": {
"description": "1 character code, The academic program objective level must be 'G'raduate or 'U'ndergraduate ,\r\n'L' for Undergraduate lower division and 'S' for Undergraduate upper division",
"type": "string"
},
"subjectArea": {
"description": "The subject code to match First 8 Char of CourseId",
"type": "string"
},
"unitsFixed": {
"format": "double",
"description": "Number of fixed units for the course",
"type": "number"
},
"unitsVariableHigh": {
"format": "double",
"description": "Number of variable units for the course",
"type": "number"
},
"unitsVariableLow": {
"format": "double",
"description": "Number of low units for the course",
"type": "number"
},
"delayedSectioning": {
"description": "delayed sectioning for the course",
"type": "string"
},
"inProgressCourse": {
"description": "If course is in progress",
"type": "string"
},
"gradingOption": {
"description": "Grading options for the course",
"type": "string"
},
"instructionType": {
"description": "Instruction type for primary sections (ending with 00)",
"type": "string"
},
"instructionTypeSecondary": {
"description": "Instruction type for secondary sections (ending with a number > 00)",
"type": "string"
},
"onLineCourse": {
"description": "If the course is online ?",
"type": "boolean"
},
"deptCode": {
"description": "department code for the course\r\nplease refer look up api for translations",
"type": "string"
},
"generalEducation": {
"description": "list of GeCode and GeCollege",
"type": "array",
"items": {
"$ref": "#/$defs/GeneralEducation"
}
},
"classSections": {
"description": "list of sections associated with the class",
"type": "array",
"items": {
"$ref": "#/$defs/ClassSection"
}
}
},
"$defs": {
"ClassSection": {
"description": "Section information for a class",
"type": "object",
"properties": {
"enrollCode": {
"description": "EnrollCode an unique number assigned\r\nto a curriculum",
"type": "string"
},
"section": {
"description": "Section number of the course",
"type": "string"
},
"session": {
"description": "Session number only for summer quarter",
"type": "string"
},
"classClosed": {
"description": "If the class is closed",
"type": "string"
},
"courseCancelled": {
"description": "Is course cancelled",
"type": "string"
},
"gradingOptionCode": {
"description": "Grading Options Code like Pass/No Pass (P/NP)\r\nOr Letter Grades (L)\r\nSee more GradingOptionsCode and GradingOptionsTranslation on GradingOptions interface\r\non Student Record Code Lookups API",
"type": "string"
},
"enrolledTotal": {
"format": "int32",
"description": "total number of enrollments in the course",
"type": "integer"
},
"maxEnroll": {
"format": "int32",
"description": "max number of students can be enrolled in the section",
"type": "integer"
},
"secondaryStatus": {
"description": "Secondary Status of the course",
"type": "string"
},
"departmentApprovalRequired": {
"description": "Is department approval required for enrollment in the section",
"type": "boolean"
},
"instructorApprovalRequired": {
"description": "Is instructor approval required for enrollment in the section",
"type": "boolean"
},
"restrictionLevel": {
"description": "Is there restriction on the level of the course",
"type": "string"
},
"restrictionMajor": {
"description": "RestrictionMajor being a limit on which majors can add into the course",
"type": "string"
},
"restrictionMajorPass": {
"description": "RestrictionMajorPass limits it to a certain major registration pass only,\r\nmeaning once that registration pass is over, then the limit is no longer enforced",
"type": "string"
},
"restrictionMinor": {
"description": "RestrictionMinors being a limit on which minors can add into the course",
"type": "string"
},
"restrictionMinorPass": {
"description": "RestrictionMinorPass limits it to a certain minor registration pass only,\r\nmeaning once that registration pass is over, then the limit is no longer enforced",
"type": "string"
},
"concurrentCourses": {
"description": "concurrent course for the section",
"type": "array",
"items": {
"type": "string"
}
},
"timeLocations": {
"description": "Time location for the section",
"type": "array",
"items": {
"$ref": "#/$defs/ClassTimeLocation"
}
},
"instructors": {
"description": "instructor the section",
"type": "array",
"items": {
"$ref": "#/$defs/ClassInstructor"
}
}
}
},
"GeneralEducation": {
"description": "General education code and college",
"type": "object",
"properties": {
"geCode": {
"description": "General education code",
"type": "string"
},
"geCollege": {
"description": "General education college",
"type": "string"
}
}
},
"ClassInstructor": {
"description": "Instructor of the section and class",
"type": "object",
"properties": {
"instructor": {
"description": "Name of the Instructor",
"type": "string"
},
"functionCode": {
"description": "Instruction Function.\r\nSee more InstructionFunctionCode and InstructionFunctionTranslation on InstructionFunction interface\r\nSee translation on Student Record Code Lookups API",
"type": "string"
}
}
},
"ClassTimeLocation": {
"description": "time location for the section",
"type": "object",
"properties": {
"room": {
"description": "Room where course is offered",
"type": "string"
},
"building": {
"description": "Building for the room",
"type": "string"
},
"roomCapacity": {
"format": "int32",
"description": "Capacity of the room",
"type": "integer"
},
"days": {
"description": "Days of Instruction for course for example 'M W ' means instruction happens on Monday and wednesday\r\nFor mode translation on day code look at Days interface at Student Record Code Lookups API",
"type": "string"
},
"beginTime": {
"description": "Begin time for a course\r\nHH:mm format",
"type": "string"
},
"endTime": {
"description": "End time of the course\r\nHH:mm format",
"type": "string"
}
}
}
},
"x-source": "openapi/ucsb-academic-curriculums-openapi.yml",
"x-method": "derived",
"x-generated": "2026-08-30"
}
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/ucsb-class"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.