Student Information System (SIS) is Johns Hopkins University’s web-based system of record for student records and registration, billing, and course data .
The SIS development team is in the process of creating several Application Programming Interfaces (APIs) for use by the Hopkins developer community.
The first SIS API available for use is the Self-Service Public Course Search API.
The Self Service Public Course Search API function returns, in JSON Format, a list of courses available through the Public Course Search (https://sis.jhu.edu/classes). The return results can be filtered on school name, department name (for specific schools), course number, section number, academic term or by constructing a custom query using a set of query string parameters.
Please use the links below to access the Self-Service Public Course Search APIs:
https://sis.jhu.edu/api/classes
https://sis.jhu.edu/api/help (to access this help page)
/classes/codes/schools?key=apikeyvalue | Returns list of all available schools | |
/classes/codes/terms?key=apikeyvalue | Returns list of available academic terms | |
/classes/codes/departments/{school name}?key=apikeyvalue | Returns list of all departments for the {school name} specified | |
/classes/{course number}?key=apikeyvalue | Returns all offered occurrences of course number* (in available academic terms only) | |
/classes/{course number+section number}?key=apikeyvalue | Returns all offered occurrences of course number* (in available academic terms only) | Returns section details |
/classes/{course number}/{term}?key=apikeyvalue | Returns all offered occurrences of course number in the academic term specified | |
/classes/{course number+section number}/{term}?key=apikeyvalue | Returns all offered occurrences of course number in the academic term specified | Returns section details |
/classes/{school}?key=apikeyvalue | Returns all classes for the school specified (in available academic terms only) Note: the range for academic terms returned is from Spring 2009 to one year in the future from the current term. | |
/classes/{school}/{term}?key=apikeyvalue | Returns all classes for the school and academic term specified | |
/classes/{school}/current?key=apikeyvalue | Returns all classes for the school for the current academic term | |
/classes/{school}/{department}?key=apikeyvalue | Returns all classes for the school, academic term and department specified | |
/classes/{school}/{department}/{term}?key=apikeyvalue | Returns all classes for that school for the specified term and department | |
/classes/{school}/{department}/current?key=apikeyvalue | Returns all classes for that school for the specified department for the current academic term | |
/classes?key=apikeyvalue¶m1=paramvalue1¶m2=paramvalue2... | Performs advanced search to include parameters in the query string: criteria=value. See Advanced Search for parameters and examples. learn more |
* Course number means (coursename + section number) = ASxxxyyyzz
A portion of the course number may be provided (at least 3 first characters). In this case, all courses matching the specified pattern will be returned.
Full course number and section number are required in order to retrieve specific section information.
When a section number is specified, section detail information will be returned for each course record.
Examples of a query string that contains parameters:
/classes?key=apikeyvalue&Term=Fall%202010&Term=Fall%202013&School=Carey%20Business%20School
/classes?key=apikeyvalue&School=School%20of%20Education&Department=ED%20Interdisciplinary%20Studies%20in%20Education&Term=fall%202013&WritingIntensive=no
The query should be URL encoded, so in the first query the values that are passed are Term=Fall 2010&Term=Fall 2013&School=Carey Business School,
and in the second query - School=School Of Education&Department=ED Interdisciplinary Studies in Education&Term=fall 2013&WritingIntensive=no.
Some criteria can be supplied twice as in the first example Term=Fall 2010&Term=Fall 2013 will search for both terms
(criteria that allows for multi-select: school, location, term, department)
Several department names contain forward slash "/". This slash must be encoded using non-standard URL encoding. It must be replaced with underscore "_".
Example of the URLs to request the list of courses for the school "The Peabody Institute" department "PY Ensembles - Small/Chamber":
/classes?key=apikeyvalue&School=The%20Peabody%20Institute&Department=PY%20Ensembles%20-%20Small_Chamber&Term=fall%202013
/classes/The%20Peabody%20Institute/PY%20Ensembles%20-%20Small_Chamber/fall%202013?key=apikeyvalue
The number is calculated using the following schema:
Example:
Course record layout | |
AllDepartments | all departments assigned to the course, separated by ^ |
Areas | all areas assigned to the course, separated by ^ |
Building | all buildings where to the course, separated by ^ |
CoursePrefix | Course Prefix |
Credits | Credits |
Department | Department that offers the course |
DOW | Numeric representation of the Days of Week when this class is held. As described in the advanced parameters, this number is calculated as the sum of the numeric representation of each day of the week assigned to each day that the class is held on: Monday = 1, Tuesday = 2, Wednesday = 4, Thursday = 8, Friday = 16, Saturday = 32 and Sunday = 64 |
DOWSort | Numeric value DOW (see above) + time in the military format) |
HasBio | Indicates if instructors have Bio information to display. |
InstructionMethod | Instruction Method (ex: Lecture) |
Instructors | Name of instructors, separated by comma |
InstructorsFullName | Full name of instructors, separated by comma |
IsWritingIntensive | Indicates if the course is writing intensive (Yes/No) |
Level | Course Level (ex: Upper Level Undergraduate) |
Location | List of locations where the course is held. |
MaxSeats | Maximum available seats |
Meetings | Comma separated list of days and times when the course is held (ex: M 3:30PM - 5:20PM) |
OfferingName | Offering name (ex: NR.110.305) |
OpenSeats | Number of open seats |
Repeatable | Indicates if a course is able to be repeated |
SchoolName | Name of the School where the course is offered. See School Names section for list of schools. |
SeatsAvailable | Number of available seats out of maximum available seats (ex: 7/65) |
SectionCoReqNotes | Section Co-Requisite notes. |
SectionCoRequisites | Section Co-Requisites |
SectionName | Section Name (ex: 0101) |
SectionRegRestrictions | Section Registration Restrictions |
Status | Section status (ex: Open) |
SectionDetails | Set of fields that contain section detail information (see Section Detail Record Layout) |
SubDepartment | Sub-department |
Term | Academic Term Name (ex: Fall 2013) |
Term_IDR | IDR name for the academic period |
Term_JSS | Term name for academic period with division specific miniterms |
TermStartDate | Academic Term Start date (ex: 9/3/2013) |
TimeOfDay | Time of the day when the course is held (ex: afternoon) |
Title | Course Title |
Waitlisted | Indicates if a course has wait list |
Section Detail Record Layout | |||||||||||||
CoRequisites |
Lists all corequisite records
|
||||||||||||
Credits | How many credits this section is worth (number value followed by two decimal places) Ex: 3.00 | ||||||||||||
CreditType | Indicates the Credit Type of the section (Writing Intensive or none) | ||||||||||||
Departments | Name of the department that offers this section | ||||||||||||
DepartmentID | ID of the departments offering the section, with the primary department listed first | ||||||||||||
Description | Detail description of the section | ||||||||||||
EvaluationUrls |
Set of records describing evaluation URLs
|
||||||||||||
Fees |
Set of records describing Fees
|
||||||||||||
Meetings |
Set of records describing Meetings information
|
||||||||||||
PosTags |
Set of records describing Pos (programs of study) Tags
|
||||||||||||
Prerequisites |
Set of records describing section Prerequisites
|
||||||||||||
WebNotes | Additional information about the class (web notes) | ||||||||||||
Instructors |
Set of records containing instructor information
|
||||||||||||
Equivalencies |
Set of course equivalencies and the valid from/ valid to dates for each
|
Only registered users are permitted to access Course Search API. In order to register you must provide a vaild email address.