Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/honghaoz/uwquestapi
University of Waterloo Quest API
https://github.com/honghaoz/uwquestapi
Last synced: about 1 month ago
JSON representation
University of Waterloo Quest API
- Host: GitHub
- URL: https://github.com/honghaoz/uwquestapi
- Owner: honghaoz
- License: apache-2.0
- Created: 2014-08-17T19:43:01.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2014-11-19T00:31:48.000Z (about 10 years ago)
- Last Synced: 2024-03-29T12:46:50.055Z (10 months ago)
- Language: Python
- Size: 1.5 MB
- Stars: 1
- Watchers: 4
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
UW Quest API
==========This API provides full access (still building) to University of Waterloo Quest, the Waterloo's student information system.
## Insteresting in this project?
Building this API for quest system is time consuming, you are very wellcome if you are interesting in this project and want to join us.
## Accessing the API
## Endpoints
All responses contain two keys: "meta" and "data", "meta" contains informations about requests, and "data" contains data needed, this value maybe empty.
- "meta":
Field | Description
----------- | -------------
status | either "success" or "failure"
message | when status is "success", this is empty, when status is "failure", this will contain error reasons
requests | request operation sequence number
version | API version
- "data": See below### Accout
- /account/login
- method: POST/GET
- ParametersParameter | Description
----------- | -------------
userid | Your UW Quest user id
password | Your UW Quest password
- ResponseField | Description
----------- | -------------
sid | New session id, used for subsequent operations- /account/logout
- method: POST/GET
- ParametersParameter | Description
----------- | -------------
sid | Session id
- Response: no data### Personal Information
- /personal_information/addresses
- method: POST/GET
- ParametersParameter | Description
----------- | -------------
sid | Session id
- ResponseField | Description
----------- | -------------
address_type | address type
address | address
- /personal_information/names
- method: POST/GET
- ParametersParameter | Description
----------- | -------------
sid | Session id
- ResponseField | Description
----------- | -------------
name_type | name type
name_prefix | name prefix
first_name | first name
middle_name | middle name, if not exists, return "-"
last_name | last name
name_suffix | name suffix
- /personal_information/phone_numbers
- method: POST/GET
- ParametersParameter | Description
----------- | -------------
sid | Session id
- ResponseField | Description
----------- | -------------
phone_type | phone type
telephone | phone number
ext | extension
country | country code
preferred | is preferred, either "Y" or "N"- /personal_information/email_addresses
- method: POST/GET
- ParametersParameter | Description
----------- | -------------
sid | Session id
- ResponseField | Description
----------- | -------------
description | descriptipn for different email
campus_email_address | campus email address section
campus_email | campus email address
delivered_to | email server be delivered to
alternate_email_address | alternate email address section
email_type | type of alternate email address
email_address | alternate email address
- /personal_information/emergency_contacts
- method: POST/GET
- ParametersParameter | Description
----------- | -------------
sid | Session id
- ResponseField | Description
----------- | -------------
primary_contact | descriptipn for different email
contact_name | campus email address section
relationship | campus email address
phone | email server be delivered to
extension | alternate email address section
country | type of alternate email address
- /personal_information/demographic_information
- method: POST/GET
- ParametersParameter | Description
----------- | -------------
sid | Session id
- ResponseField | Description
----------- | -------------
demographic_information | "gender", "date_of_birth", "id", "marital_status"
national_identification_number | "country", "national_id_type", "national_id"
citizenship_information | "country", "description"
visa_or_permit_data | "country", "type"
note | note on demographic information- /personal_information/citizenship_immigration_documents
- method: POST/GET
- ParametersParameter | Description
----------- | -------------
sid | Session id
- ResponseField | Description
----------- | -------------
visa_type | visa type
country | visa issue country
date_received | received date
expiration_date | expiration date### My Academics
- /my_academics/my_program
- method: POST/GET
- ParametersParameter | Description
----------- | -------------
sid | Session id
- ResponseField | Description
----------- | -------------
current_program | current program
current_sub_plan | sub plan
campus | campus
approved_load | approved load- /my_academics/grades
- There are two kinds of response.
- If only sid is provided, response will be terms that can be queried
- If sid and term index are provided, response will be grades for queried term
- 1) method: POST/GET
- 1) ParametersParameter | Description
----------- | -------------
sid | Session id
- 1) ResponseField | Description
----------- | -------------
term_index | int, the index for this term, used as parameters for get grades
term | which term
career | undergraduate or graduate
institution | institution- 2) method: POST/GET
- 2) ParametersParameter | Description
----------- | -------------
sid | Session id
term_index | index number which is responsed from /my_academics/grades
- 2) ResponseField | Description
----------- | -------------
term | which term
career | undergraduate or graduate
message | message like "Grades for the term will be available on Dec 20, 2014."
institution | institution
class | class category and number, e.g. CS 136
description | class name
units | units
grade | your grades
grade_points | your grade points
- /my_academics/unofficial_transcript
- There are two kinds of response.
- If only sid is provided, response will be options that can be queried
- If sid, academic_institution and report_type are provided, response will be unofficial transcript queried- 1) method: POST/GET
- 1) ParametersParameter | Description
----------- | -------------
sid | Session id
- 1) ResponseField | Description
----------- | -------------
academic_institution | institution issues transcript
report_type | type
value | option values, e.g. 'UNGRD', 'UNUG', 'UWATR'
description | description for option value
selected | whether is selected by default "Y" or "N"
- 2) method: POST/GET
- 2) ParametersParameter | Description
----------- | -------------
sid | Session id
academic_institution | value get from /my_academics/unofficial_transcript
report_type | value get from /my_academics/unofficial_transcript
- 2) ResponseField | Description
----------- | -------------
data | html source code for transcript
- /my_academics/my_advisors
- method: POST/GET
- ParametersParameter | Description
----------- | -------------
sid | Session id
- ResponseField | Description
----------- | -------------
academic_program |
(program plan name) | e.g. master_of_engineering
advisor_name | a list of advisors' name### Enroll
- /enroll/my_class_schedule
- There are two kinds of response.
- If only sid is provided, response will be terms that can be queried
- If sid and term index are provided, response will be class schedule for queried term
- 1) method: POST/GET
- 1) ParametersParameter | Description
----------- | -------------
sid | Session id
- 1) ResponseField | Description
----------- | -------------
term_index | int, the index for this term, used as parameters for get class schedule
term | which term
career | undergraduate or graduate
institution | institution
- 2) method: POST/GET
- 2) ParametersParameter | Description
----------- | -------------
sid | Session id
term_index | index number which is responsed from /my_academics/my_class_schedule
- 2) ResponseField | Description
----------- | -------------
term | which term
career | undergraduate or graduate
institution | institution
classes | list contains classes
status | enrolled or not
subject | e.g. CS, ECE
category_number | 136
description | class name
grading | grading method
units | units
grade | your grades
components | list contains class components
class_nbr | class number
section | section
component | LEC TUT TST
days_&_times | days and times
room | class room number
instructor | instructor name
start/end_date | start/end date
- /enroll/add- method: POST/GET
- ParametersParameter | Description
----------- | -------------
sid | Session id
- ResponseField | Description
----------- | -------------
|
- /enroll/drop- /enroll/component_swap
- /enroll/search_for_classes
- There are three kinds of response.
- If only sid is provided, response will be search criteria and option values that can be queried
- If sid and at least two criterias are provided, response will be results for this search
- If sid and section_info_request_value are provided, response will be detail information for corresponding section
- 1) method: POST/GET
- 1) ParametersParameter | Description
----------- | -------------
sid | Session id
- 1) ResponseField | Description
----------- | -------------
institution | which institution
term | which term
course_subject| eg. "CS", "ECE"
course_number |
course_number_relations | contians, equal...
course_career | undergraduate or graduate
show_open_classes_only | "Y" or "N"- 2) method: POST/GET
- 2) ParametersParameter | Description
----------- | -------------
sid | Session id
institution | which institution
term | which term
course_subject| eg. "CS", "ECE"
course_number |
course_number_relations | contians, equal...
course_career | "UG" or "GRD"
show_open_classes_only | "Y" or "N"
- 2) ResponseField | Description
----------- | -------------
course_subject |
course_number |
course_name |
sections |
component_type | LEC TUT TST
component_number | 001
class_number |
status | Open or Close
session | Regular
section_info_request_value | value used for get detail info for this section
schedules | section schedules
days_&_times |
meeting_dates |
instructor |
room |
- 3) method: POST/GET
- 3) ParametersParameter | Description
----------- | -------------
sid | Session id
section_info_request_value | this value should get from the second response
- 3) ResponseField | Description
----------- | -------------
Class Details | contains detail information for this class
campus | University of Waterloo - Main
career | Undergraduate
class_components |
component_type |
is_required | Required
class_number |
dates | 9/8/2014 - 12/1/2014
grading | Numeric Grading Basis
location | University of Waterloo
session | e.g. Regular Academic Session
sections |
component_type | LEC TUT TST
component_number | 001
class_number |
status | Open or Close
session | Regular
status | Open or Closed
units | 0.5 units
class_availability |
class_capacity |
enrollment_total |
available_seats |
component_number |
component_type |
course_name |
course_subject |
course_number |
description |
enrollment_information |
enrollment_requirements |
institution |
meeting_information |
days_&_times |
instructor |
meeting_dates |
room |
notes |
class_notes |
term |