SIS Web API Help


SIS Self-Service Public Course Search API

Contents

  • Introduction to SIS APIs
  • Self Service Public Course Search API
    • Description
    • Web Access Links
    • Request Patterns
    • Advanced Search
    • School Names
    • Return Data Dictionary
    • Access Validation (Register and request API key)
Introduction to SIS APIs

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.

Self-Service Public Course Search API

Description

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.

Web Access Links:

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)

To Top
Request patterns:
/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&param1=paramvalue1&param2=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.

To Top
Advanced Search

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

To Top

Advanced Search Parameters:

  • Area
  • Building
  • CourseNumber - the course number or a portion of it (at least first 3 characters are required)
  • CourseTitle - title of the course or any portion of it
  • Credits - Number of credits the course is assigned including two decimal places (ex: Credits=3.00)
  • DaysOfWeek - Consists of 3 parts
    1. “All” or “Any”
      • All: courses to be displayed should be held on all days specified
      • Any: courses to be displayed should be held on any of the days specified
    2. “|” (pipe) separator
    3. Numeric representation of the days of the week desired

      The number is calculated using the following schema:

      • Each day of the week has a rank assigned to it:
        • Monday = 1
        • Tuesday = 2
        • Wednesday = 4
        • Thursday = 8
        • Friday = 16
        • Saturday = 32
        • Sunday = 64
      • The sum of these numbers is the numeric representation

      Example:

      • to retrieve the list of all classes that are held on Monday (1), Wednesday(4) and Friday(16), add numbers 1, 4 and 16 and use result = 21.
      • To retrieve classes that are held on all 3 days: DaysOfWeek=all|21
        To retrieve classes that are held on any of the 3 days: DaysOfWeek=any|21
  • Department
  • Instructor
  • Level
  • Location
  • School
  • StartTimeEndTime - Start time and end time of the class separated by "|" (pipe)
    • Example: StartTimeEndTime=09:00|10:15
  • Status
  • Term
  • TimeOfDay - Morning, afternoon, evening, other
  • WritingIntensive - Yes or No
To Top
The following school names can be used to request a list of courses:
  • Bloomberg School of Public Health
  • Carey Business School
  • Krieger School of Arts and Sciences
  • Krieger School of Arts and Sciences Advanced Academic Programs
  • Nitze School of Advanced International Studies
  • School of Education
  • School of Nursing
  • The Peabody Institute
  • Whiting School of Engineering
  • Whiting School of Engineering Programs for Professionals
  • The Peabody Preparatory
  • Bloomberg School of Public Health Non-Credit
  • School of Medicine

Note: School names should be typed exactly as appearing in this list with %20 to indicate spaces
To Top
Return Data Dictionary
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
Description Co-requisite description
Expression Logic for the co-requisite
TermName Academic Period Name
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
URL URL address
ValidFrom Date this URL is accessible from
ValidTo Date this URL is accessible till
Fees Set of records describing Fees
Amount Amount of the fee
FeeType Description of the fee
Meetings Set of records describing Meetings information
Building Building where the section is held
Dates Date range when the section is held
DOW=Sa Days of week when the section is held (numeric representation – see explanation in Advanced Search Parameters section)
Location Campus location
Room Room number
Times Time range when the class is held
PosTags Set of records describing Pos (programs of study) Tags
Tag Pos Tag
Prerequisites Set of records describing section Prerequisites
Description Description of the pre-requisite
Expression Expression defining the Prerequisites
IsNegative Flag indicating whether or not the prereq is a negative prereq
WebNotes Additional information about the class (web notes)
Instructors Set of records containing instructor information
HopkinsID HopkinsID of the instructor
Equivalencies Set of course equivalencies and the valid from/ valid to dates for each
CourseName Name of the course that counts as an equivalency
ValidFrom ValidFrom date for the equivalency
ValidTo ValidTo date for the equivalency
To Top
Access Validation (register and request an API key)

Only registered users are permitted to access Course Search API. In order to register you must provide a vaild email address.







To Top