/
Timetable Scraper API

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

Name

Description

termId

The ID of the term containing the year and term separated by a dash, e.g. 2022-T1 or 2018-S2

Result

Code

Format

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

Name

Description

termId

The ID of the term containing the year and term separated by a dash, e.g. 2022-T1 or 2018-S2

courseId

The course code of the course e.g. COMP1511

Result

Code

Format

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

Name

Description

client

The name of the client calling this API e.g. only notangles or freerooms

Result

Code

Format

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

Code

Format

200

One of T1, T2, T3 or Summer.

/api/currentterm

Request type: GET

Description

Returns the current academic term.

Code

Format

Code

Format

200

One of T1, T2, T3 or Summer.

 

 

Related content