Timetable Scraper API
All timetable data used in Notangles is scraped using CSESoc’s timetable scraper, which can be found here.
/api/terms/:termId/courses
Request type: GET
Description
Returns information about the courses which are offered in the provided term.
Path Variables
Name | Description |
---|---|
termId | The ID of the term containing the year and term separated by a dash, e.g. |
Result
Code | Format |
---|---|
200 | {
"lastUpdated": Unix timestamp representing when the data was last updated
"courses": [
{
"courseCode": the course code e.g. COMP1511,
"name": the full name of the course e.g. Programming Fundamentals,
"online": whether the course is offered online,
"inPerson": whether the course is offered in-person
},
]
} |
400 | Invalid termId/courseId param |
/api/terms/:termId/courses/:courseId
Request type: GET
Description
Returns information about the course with the provided courseId
.
Path Variables
Name | Description |
---|---|
termId | The ID of the term containing the year and term separated by a dash, e.g. |
courseId | The course code of the course e.g. |
Result
Code | Format |
---|---|
200 | {
"courseCode": the course code of the course,
"name": the full name of the course,
"school": the school the course is associated with,
"campus": the campus where the course is offered,
"career": "Undergraduate" or "Postgraduate",
"termsOffered": a list of terms when the course is offered e.g. ["T1"],
"censusDates": a list of the census dates of the term in the form DD-MMM-YYYY,
"classes": a list of the classes associated with the course (see 'class' below for structure),
"notes": any miscellaneous notes about the course
} |
400 | Invalid termId/courseId param |
For the following objects, note that not all of these fields are used in the actual client.
A class
object is as follows:
{
"classID": the id of the class as per myUNSW,
"section": the section of the course as per myUNSW,
"term": the term when this class is offered e.g. "T1",
"activity": the type of class e.g. "Lecture", "Tutorial",
"status": whether or not the class is open for enrolment,
"courseEnrolment": {
"enrolments": the number of current enrolments in this class,
"capacity": the maximum number of enrolments in this class
},
"termDates": {
"start": the starting date of the term this class is offered in,
"end": the end date of the term this class is offered in
},
"needsConsent": whether this course needs special consent for you to enrol in it (?)
"mode": "Online" or "In Person",
"times": a list of times when the class is scheduled (see 'time' below for structure),
"notes": a list of any miscellaneous notes about the class
}
A time
object is as follows:
{
"day": the day of the week this class is offered e.g. "Wed",
"time": {
"start": the starting time of the class in 24 hour time,
"end": the ending time of the class in 24 hour time,
},
"weeks": which weeks the class is offered e.g. "1-5",
"location": where the class is held,
"instructor": the instructor for the class
}
/api/startdate/:client
Request type: GET
Description
Returns the start date of either the most updated term (for Notangles) or the current academic term (for Freerooms)
Path Variables
Name | Description |
---|---|
client | The name of the client calling this API e.g. only |
Result
Code | Format |
---|---|
200 | dd-mm-yyyy |
/api/availableterm
Request type: GET
Description
Returns the most updated term that there is scraped data for.
Code | Format |
---|---|
200 | One of T1, T2, T3 or Summer. |
/api/currentterm
Request type: GET
Description
Returns the current academic term.
Code | Format |
---|---|
200 | One of T1, T2, T3 or Summer. |