Courses

This endpoint lets you get data about university courses and their sections. You can get one course or section at a time, several courses or sections at a time, or a list of all the courses.


Parameters:

semester – a six-digit string <year><month>. For example, “201401” for 2014’s Winter semester or “201508” for 2015’s Fall semseter.

See https://api.umd.io/v0/courses/semesters for a list of available semesters.

Courses Endpoint

https://api.umd.io/v0/courses

Searching courses

https://api.umd.io/v0/courses

Returns: a Paginated array of Course objects.


Parameters:

sort – a comma-separated list of course properties. Defaults to ASCENDING order, use a - (minus) prefix for DESCENDING order.
For example, ?sort=course_id,-credits sorts the results ASCENDING by course_id and DESCENDING by credits.

To search for courses, use each course property as a parameter and one of the following comparisions: = (equals), != (not equals), < (less than), > (greater than), <= (less than or equals) and >= (greater than or equals) followed by the value or a list of values.
For example, ?dept_id=CMSC,BMGT&credits<2 gives all courses in the CMSC or BMGT departments worth less than 2 credits.

See the Course object for a full list of available properties.


When searching array properties, the | (pipe) delimeter may be used instead of a comma to only return results that all the values.
For example, ?grading_method=Audit|Pass-Fail gives all courses whose grading method is both Audit and Pass-Fail.

Request: GET https://api.umd.io/v0/courses?dept_id=CMSC,BMGT&credits<2 Trimmed Response:

[
  {
    "course_id": "BMGT888W",
    "name": "Special Topics in Supply Chain Management; Workshop in Supply Chain Management",
    "dept_id": "BMGT",
    "credits": "1",
    ...
    "sections": [
      "BMGT888W-0101",
      "BMGT888W-0101"
    ]
  },
  {
    "course_id": "CMSC100",
    "name": "Bits and Bytes of Computer Science",
    "dept_id": "CMSC",
    "credits": "1",
    ...
    "sections": [
      "CMSC100-0101",
      "CMSC100-0101"
    ]
  }
  ...
]

List all courses

List all the courses available (for the given semester, or the current semester by default).

https://api.umd.io/v0/courses/list

Returns: Array of objects with three properties: course_id, name, and department

Request: GET https://api.umd.io/v0/courses/list Trimmed Response:

[
  {
    "course_id": "AASP100",
    "name": "Introduction to African American Studies",
    "department": "African American Studies"
  },
  {
    "course_id": "AASP101",
    "name": "Public Policy and the Black Community",
    "department":"African American Studies"
  }
]

The course object

The course object represents a single UMD course. The properties of a course are:

course_id – a unique string ID with a four-letter dept_id followed by a three digit course number and an optional letter. Examples: “CSMC132”, “BMGT468Z”.

name – string name of the course.

dept_id – Four-letter string like ENGL or BMGT.

department – Full name of the department that offers a course.

semester – Six-digit number identifying the semester the course is offered. Currently, the API only offers courses for the current semester, but that will change soon.

credits – One-digit number of credits the course is worth.

grading_method – Array of string grading options available. The possible options are “Regular”, “Pass-Fail”, “Audit”, and “Sat-Fail”

core – Array of strings of CORE requirements filled by a course.

gen_ed – Array of strings of GEN. ED requirements filled by a course.

description – String description of a course.

relationships – contains the relationships and restrictions of a course which can be: coreqs, prereqs, restrictions, restricted_to, credit_only_granted_for, credit_granted_for,formerly, and also_offered_as.

sections – Array of section_id strings of the sections of a course. See section object.

Sample course object

{
  "course_id": "ENEE380",
  "name": "Electromagnetic Theory",
  "dept_id": "ENEE",
  "department": "Electrical & Computer Engineering",
  "semester": "201501",
  "credits": "3",
  "grading_method": ["Regular"],
  "core": [],
  "gen_ed": [],
  "description": "Introduction to electromagnetic...",
  "relationships": {
    "coreqs": [],
    "prereqs": ["Prerequisite: PHYS271, PHYS270, ..."],
    "restrictions": [],
    "restricted_to": [],
    "credit_only_granted_for": [],
    "credit_granted_for": [],
    "formerly": [],
    "also_offered_as": []
  },
  "sections": [
    "ENEE380-0101",
    "ENEE380-0102",
    "ENEE380-0103"
  ]
}

Get courses

Get information about one or more courses.


https://api.umd.io/v0/courses/<course_id>

Get information about one course.

Returns: The course object specified, or a 404 error, letting you know that the course doesn’t exist on the database.


https://api.umd.io/v0/courses/<course_ids>

Get information about multiple courses where course_ids is a comma-seperated list of course_id’s.

Returns: Array of course objects. If one of the course objects does not exist, the rest are still returned.

Sample Request

GET https://api.umd.io/v0/courses/ENES100

Response:

{
  "course_id": "ENES100",
  "name": "Introduction to Engineering Design",
  "dept_id":"ENES",
  "department": "Engineering Science",
  "semester": "201501",
  "credits": "3",
  "grading_method": ["Regular", "Pass-Fail", "Audit"],
  "core": ["PS"],
  "gen_ed": ["DSSP"],
  "description": "Students work as teams to design...",
  "relationships": {
    "coreqs": ["Corequisite: MATH140"]
  },
  "sections": [
    "ENES100-0101",
    "ENES100-0201",
    "ENES100-0202",
    "ENES100-0301",
    "ENES100-0302",
    "ENES100-0401",
    "ENES100-0501",
    "ENES100-0502",
    "ENES100-0601",
    "ENES100-0602",
    "ENES100-0801"
  ]
}

Sections

https://api.umd.io/v0/courses/sections

Returns: a Paginated array of Section objects.


Example search query: https://api.umd.io/v0/courses/sections?start_time>=12pm gets all sections that start after 12pm.

See Searching courses for more information about searches.

Sections Root URL: https://api.umd.io/v0/courses/sections

Section object

The section object represents a single section of a course. The properties of a section are:

section_id – a unique section identifier, like ENES100-0101. Always the related course_id with a four-digit section number appended to it.

course_id – The course that the section belongs to.

instructors – An Array of names of the instructors for this section.

seats – The total number of seats offered in a section.

semester – Six-digit number specifying the semester a course is offered.

meetings – Array of JSON objects with the following properties: days: string of days for that meeting, like “MWF”, “TuTh”. start_time: start time of the meeting, like “9:00am”. end_time: end time of the meeting. building: building where the meeting takes place, like “KEY”. room: Four digit room code where the meeting takes place. classtype: String indicates what type of meeting. Could be “Lecture”, “Discussion”, or “Lab”.

Sample section object

{
  "section_id": "ENGL101-0101",
  "course_id": "ENGL101",
  "instructors": [
    "Christopher Philpot"
  ],
  "seats": "19",
  "semester": "201501",
  "meetings": [
    {
      "days": "MWF",
      "start_time": "9:00am",
      "end_time": "9:50am",
      "building": "KEY",
      "room": "0120",
      "classtype": "Lecture"
    }
  ]
}

Get sections

Get information about a section or multiple sections.


https://api.umd.io/v0/courses/sections/<section_id>

To get information about a single section, append the section_id to the sections root URL.

Returns: The specified section object or null


https://api.umd.io/v0/courses/sections/<section_ids>

To get information about multiple sections, append comma-separated section_ids to the sections root URL.

Returns: Array of specified section objects. If one of the sections does not exist, the rest are still returned.

Get departments

Get a list of all department ids.

https://api.umd.io/v0/courses/departments

Trimmed sample response:

[
  "AASP",
  "AAST",
  "AGNR",
  "AMSC",
  "AMST",
  ...
  "WMST"
]