Download OpenAPI specification:Download
Welcome to umd.io, the open-source API for University of Maryland data. If you are building a University data-focused app, hack, or project, you’re in the right place. This site will walk you through basic API use and document all supported API calls.
umd.io is a GETful API. It follows RESTful conventions, but for now, you can only get data – you can’t create, update, or destroy.
We're now in version 1! We might add new endpoints or more data to existing responses, but we won't remove anything without a major version change.
If you're looking for the v0 docs, you can find them at https://docs.umd.io/. Please note that v0 is deprecated. It will continue to be supported until at least 2021, but will get no further feature updates, and will eventually be discontinued.
We are actively looking for contributors! Tweet, email, or otherwise get in touch with us.
This set of endpoints 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. All the data is scraped from Testudo.
Returns paginated list of courses
sort | string Example: sort=course_id,-credits 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. |
page | number Example: page=3 For paginated responses, the page to view. 1-indexed. Defaults to 1 if omitted. |
per_page | number Example: per_page=3 Endpoints that return a large amount of items are paginated to 30 items by default. You can use this parameter to set a page size up to 100. |
semester | string Example: semester=202008|leq 6-digit semester ID to search, with optional comparator, separated by a pipe. Valid comparators are eq, leq, lt, gt, geq, neq. |
credits | string Example: credits=3|leq The number of credits to watch, with optional comparator, separated by a pipe. Valid comparators are eq, leq, lt, gt, geq, neq. |
dept_id | string Example: dept_id=CMSC 4 Letter department code to search. |
gen_ed | string Example: gen_ed=DSNS Gened requirement to search. |
[- {
- "course_id": "MATH140",
- "semester": 202001,
- "name": "Calculus I",
- "dept_id": "MATH",
- "department": "Mathematics",
- "credits": "4",
- "description": "Introduction to calculus, including functions, limits, continuity, derivatives and applications of the derivative, sketching of graphs of functions, definite and indefinite integrals, and calculation of area. The course is especially recommended for science, engineering and mathematics majors.",
- "grading_method": [
- "Regular",
- "Pass-Fail",
- "Audit"
], - "gen_ed": [
- [
- "FSAR",
- "FSMA"
]
], - "core": [
- "MS"
], - "relationships": {
- "coreqs": null,
- "prereqs": "Minimum grade of C- in MATH115.",
- "formerly": null,
- "restrictions": null,
- "additional_info": "Or must have math eligibility of MATH140 or higher; and math eligibility is based on the Math Placement Test. All sections will require the use of a TI graphics calculator. Instructor will use a TI-83, TI-83+, or TI-86 calculator. If purchasing used books additional software may be required.",
- "also_offered_as": null,
- "credit_granted_for": "MATH120, MATH130, MATH136, MATH140 or MATH220."
}, - "sections": [
- "MATH140-0111",
- "MATH140-0121",
- "MATH140-0131",
- "MATH140-0141",
- "MATH140-0211",
- "MATH140-0221",
- "MATH140-0231",
- "MATH140-0241",
- "MATH140-0311",
- "MATH140-0321",
- "MATH140-0112",
- "MATH140-0113",
- "MATH140-0122",
- "MATH140-0123",
- "MATH140-0132",
- "MATH140-0142"
]
}
]
Returns list of all course codes and names
sort | string Example: sort=course_id,-credits 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. |
page | number Example: page=3 For paginated responses, the page to view. 1-indexed. Defaults to 1 if omitted. |
per_page | number Example: per_page=3 Endpoints that return a large amount of items are paginated to 30 items by default. You can use this parameter to set a page size up to 100. |
semester | string Example: semester=202008|leq 6-digit semester ID to search, with optional comparator, separated by a pipe. Valid comparators are eq, leq, lt, gt, geq, neq. |
[- {
- "course_id": "string",
- "name": "string"
}
]
Returns paginated list of sections
sort | string Example: sort=course_id,-credits 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. |
page | number Example: page=3 For paginated responses, the page to view. 1-indexed. Defaults to 1 if omitted. |
per_page | number Example: per_page=3 Endpoints that return a large amount of items are paginated to 30 items by default. You can use this parameter to set a page size up to 100. |
course_id | string Example: course_id=CMSC216 7 or 8 digit course id. See the course object for more info. |
seats | string Example: seats=200 Number of total seats in a section, with optional comparator, separated by a pipe. Valid comparators are eq, leq, lt, gt, geq, neq. |
open_seats | string Example: open_seats=5 Number of open seats in a section, with optional comparator, separated by a pipe. Valid comparators are eq, leq, lt, gt, geq, neq. |
waitlist | string Example: waitlist=10 Number of people on the waitlist for a class, with optional comparator, separated by a pipe. Valid comparators are eq, leq, lt, gt, geq, neq. |
semester | string Example: semester=202008|leq 6-digit semester ID to search, with optional comparator, separated by a pipe. Valid comparators are eq, leq, lt, gt, geq, neq. |
[- {
- "course": "ENGL101",
- "section_id": "ENGL101-0101",
- "semester": 201501,
- "number": "string",
- "seats": "string",
- "meetings": [
- {
- "days": "string",
- "room": "string",
- "building": "string",
- "classtype": "string",
- "start_time": "string",
- "end_time": "string"
}
], - "open_seats": "string",
- "waitlist": "string",
- "instructors": [
- "string"
]
}
]
Returns paginated list of sections
section_ids required | Array of strings Example: ENGL101-0101,MATH140-0201 One or more comma separated section ids, of format DEPTNNN-XXXX. |
semester | string Example: semester=202008|leq 6-digit semester ID to search, with optional comparator, separated by a pipe. Valid comparators are eq, leq, lt, gt, geq, neq. |
[- {
- "course": "ENGL101",
- "section_id": "ENGL101-0101",
- "semester": 201501,
- "number": "string",
- "seats": "string",
- "meetings": [
- {
- "days": "string",
- "room": "string",
- "building": "string",
- "classtype": "string",
- "start_time": "string",
- "end_time": "string"
}
], - "open_seats": "string",
- "waitlist": "string",
- "instructors": [
- "string"
]
}
]
Returns info about one or more courses
course_ids required | Array of strings Example: ENGL101,MATH140,CMSC388F One or more comma separated course ids, in format DEPTNNN with up to 2 trailing characters. |
semester | string Example: semester=202008|leq 6-digit semester ID to search, with optional comparator, separated by a pipe. Valid comparators are eq, leq, lt, gt, geq, neq. |
[- {
- "course_id": "MATH140",
- "semester": 202001,
- "name": "Calculus I",
- "dept_id": "MATH",
- "department": "Mathematics",
- "credits": "4",
- "description": "Introduction to calculus, including functions, limits, continuity, derivatives and applications of the derivative, sketching of graphs of functions, definite and indefinite integrals, and calculation of area. The course is especially recommended for science, engineering and mathematics majors.",
- "grading_method": [
- "Regular",
- "Pass-Fail",
- "Audit"
], - "gen_ed": [
- [
- "FSAR",
- "FSMA"
]
], - "core": [
- "MS"
], - "relationships": {
- "coreqs": null,
- "prereqs": "Minimum grade of C- in MATH115.",
- "formerly": null,
- "restrictions": null,
- "additional_info": "Or must have math eligibility of MATH140 or higher; and math eligibility is based on the Math Placement Test. All sections will require the use of a TI graphics calculator. Instructor will use a TI-83, TI-83+, or TI-86 calculator. If purchasing used books additional software may be required.",
- "also_offered_as": null,
- "credit_granted_for": "MATH120, MATH130, MATH136, MATH140 or MATH220."
}, - "sections": [
- "MATH140-0111",
- "MATH140-0121",
- "MATH140-0131",
- "MATH140-0141",
- "MATH140-0211",
- "MATH140-0221",
- "MATH140-0231",
- "MATH140-0241",
- "MATH140-0311",
- "MATH140-0321",
- "MATH140-0112",
- "MATH140-0113",
- "MATH140-0122",
- "MATH140-0123",
- "MATH140-0132",
- "MATH140-0142"
]
}
]
Returns info about one or more courses
course_ids required | Array of strings Example: ENGL101,MATH140,CMSC388F One or more comma separated course ids, in format DEPTNNN with up to 2 trailing characters. |
semester | string Example: semester=202008|leq 6-digit semester ID to search, with optional comparator, separated by a pipe. Valid comparators are eq, leq, lt, gt, geq, neq. |
[- {
- "course": "ENGL101",
- "section_id": "ENGL101-0101",
- "semester": 201501,
- "number": "string",
- "seats": "string",
- "meetings": [
- {
- "days": "string",
- "room": "string",
- "building": "string",
- "classtype": "string",
- "start_time": "string",
- "end_time": "string"
}
], - "open_seats": "string",
- "waitlist": "string",
- "instructors": [
- "string"
]
}
]
Returns info about one or more courses
course_ids required | Array of strings Example: ENGL101,MATH140,CMSC388F One or more comma separated course ids, in format DEPTNNN with up to 2 trailing characters. |
section_ids required | Array of strings Example: ENGL101-0101,MATH140-0201 One or more comma separated section ids, of format DEPTNNN-XXXX. |
semester | string Example: semester=202008|leq 6-digit semester ID to search, with optional comparator, separated by a pipe. Valid comparators are eq, leq, lt, gt, geq, neq. |
[- {
- "course": "ENGL101",
- "section_id": "ENGL101-0101",
- "semester": 201501,
- "number": "string",
- "seats": "string",
- "meetings": [
- {
- "days": "string",
- "room": "string",
- "building": "string",
- "classtype": "string",
- "start_time": "string",
- "end_time": "string"
}
], - "open_seats": "string",
- "waitlist": "string",
- "instructors": [
- "string"
]
}
]
This endpoint contains information about university professors and the courses they have taught.
Returns list of all professors
name | string Example: name=Aaron Bartlett Professor's name. |
course_id | string Example: course_id=CMSC216 7 or 8 digit course id. See the course object for more info. |
[- {
- "name": "Aaron Bartlett",
- "taught": [
- {
- "semester": 202001,
- "course": "ENGL101"
}
]
}
]
This endpoint lets you get data about bus routes, schedules, stops, locations, and predicted arrival times. The data is provided by NextBus, which monitors buses and gives the data to us via their API. We think our API is easier to use, but our data might be behind NextBus by a few seconds. If your app requires to-the-second bus location info, you can go right to the source. All bus data is copyright University of Maryland
Get route data for one or more routes
route_ids required | Array of strings Route ids |
{- "data": {
- "route_id": "701",
- "title": "701 UMB BioPark",
- "stops": [
- {
- "stop_id": "laplat",
- "title": "La Plata Hall",
- "lat": -76.94563,
- "long": 38.9922185
}
], - "directions": [
- {
- "direction_id": "ramsapts",
- "title": "Ramsay St Apts",
- "stops": [
- "string"
]
}
], - "paths": [
- [
- {
- "lat": 0,
- "long": 0
}
]
], - "lat_max": 39.2995236,
- "lat_min": 39.28301,
- "long_max": -76.620848,
- "long_min": -76.6320545
}, - "count": 1
}
Get bus schedules for a route
route_id required | string Route id |
[- {
- "days": "f",
- "direction": "string",
- "route": "string",
- "stops": [
- {
- "stop_id": "laplat",
- "name": "La Plata Hall"
}
], - "trips": [
- [
- {
- "stop_id": "string",
- "arrival_time": "string",
- "arrival_time_secs": "string"
}
]
]
}
]
Get arrivals for a stop for a route
route_id required | string Route id |
stop_id required | string Stop id |
{- "copyright": "All data copyright University of Maryland 2021.",
- "predictions": {
- "routeTag": "104",
- "stopTag": "regdrgar_d",
- "routeTitle": "104 College Park Metro",
- "agencyTitle": "University of Maryland",
- "dirTitleBecauseNoPredictions": "College Park Metro",
- "message": [
- {
- "text": "string",
- "priority": "Normal"
}
]
}
}
Get location data about one or more buildings. Comma separated building numbers are the parameters.
building_id required | Array of strings Example: 226 Numeric building ID |
{- "data": {
- "name": "Edward St. John Learning and Teaching Center",
- "code": "ESJ",
- "id": "226",
- "long": -76.941914,
- "lat": 38.986699
}, - "count": 1
}
[- {
- "major_id": 19,
- "name": "Behavioral and Community Health",
- "college": "School of Public Health",
}
]