Unofficial API for UT Dallas Coursebook
This was a fun sophomore summer project. I will maintain this API till 2022/2023. Just open an issue if you have any suggestions or something is breaking the API. UTD coursebook sometimes makes some subtle changes that break the API, I have tried my best to account for those in my API but it might not be perfect.
GET /v1/:term/:course/:section
: Returns a single object for requested class.
Click to expand
Parameters:
term
:- Semester term
- Formatting:
<two-digit year><single letter semester>
- Examples:
20f
,18s
course
:- Course number with subject code
- Formatting:
<subject code><number>
- Examples:
cs4337
,math2414
,hist1301
section
:- Section number
- Formatting:
<three-digit section number>
- Examples:
001
,0w1
,HON
Response:
{
"data": {
"class_attributes": string[],
"class_info": {
"add_consent": string,
"class_level": string,
"class_section": string,
"course_number": string,
"date/time": string,
"grading": string,
"mode": string,
"semester_credit_hours": string,
"type": string
},
"college": string,
"course_title": string,
"description": string,
"enrollment_reqs": string,
"evaluation": string,
"instructor": string[],
"schedule": {
"ends": string,
"misc": string[],
"starts": string,
"term": string,
"type": string
},
"status": {
"available_seats": string,
"enrolled_total": string,
"enrollment_status": string,
"waitlist": string
},
"syllabus": string,
"ta/ra": string
}
}
GET /v1/<course>
: Returns an array of objects with class details for every section in current semester
Click to expand
Parameters:
course
:- Course number with subject code
- Formatting:
<subject code><number>
- Examples:
cs4337
,math2414
,hist1301
Source: UTDGrades
GET /v1/grades/:term/:course
: Returns an array of objects for all sections in the course with appropriate grades
Click to expand
Parameters:
term
:- Semester term
- Formatting:
<two-digit year><single letter semester>
- Examples:
20f
,18s
course
:- Course number with subject code
- Formatting:
<subject code><number>
- Examples:
cs4337
,math2414
,hist1301
Response:
{
"data": [
{
"grades": {
"A": int,
"A+": int,
"A-": int,
"B": int,
"B+": int,
"B-": int,
"C": int,
"C+": int,
"C-": int,
"D": int,
"F": int,
"W": int
},
"num": string,
"prof": string,
"sect": string,
"subj": string,
"term": string
},
{ ... },
{ ... }
]
}
GET /v1/grades/:term/:course/:section
: Returns a single object with grade data for the given course and section
Click to expand
Parameters:
term
:- Semester term
- Formatting:
<two-digit year><single letter semester>
- Examples:
20f
,18s
course
:- Course number with subject code
- Formatting:
<subject code><number>
- Examples:
cs4337
,math2414
,hist1301
section
:- Section number
- Formatting:
<three-digit section number>
- Examples:
001
,0w1
,HON
Response:
{
"data": {
"grades": {
"A": int,
"A+": int,
"A-": int,
"B": int,
"B+": int,
"B-": int,
"C": int,
"C+": int,
"C-": int,
"D": int,
"F": int,
"W": int
},
"num": string,
"prof": string,
"sect": string,
"subj": string,
"term": string
}
}
Source: UTD Directory
GET /v1/prof/:name
: Returns an array of objects for all professors matched with the given :name
Click to expand
Parameters:
name
:- String to search directory with
- When providing full name encode spaces with
%20
- Examples:
John
,Mazidi
,john%20cole
Response:
{
"data": [
{
"department": string,
"email": string,
"mailstop": string,
"name": string,
"office": string,
"phone": string,
"title": string
},
{ ... }
]
}
Feel free to fork the repository and pull request it.
Branch naming convention:
feature/<name-of-feat>
: Feature branch, new features, usually labelled as Enhancements in issues. Example:feature/professor-data
bug/<name-of-bug>
: Bug branch, bug fixes, usually labelled as Bug in issues. Example:bug/heading-format
internal/<name>
: Internal branch, internal improvements, misc. items go under this branch, labelled accordingly as Internal in issues. Example:internal/refactor
update/<name-of-feat>
: Update branch, update existing features, not neccessarily a bug fix. Example:update/data-storage
Make sure to comment your code
so that it would be easy to review it. Work on any issue you are interested in fixing, or just want to tidy up my inefficient code :)