Course Outlines REST API documentation
The Course Outlines REST API provides access to resources (data entitites) via URI paths. The REST API is for developers who want to consume content with their application.
To use a REST API, your application will make an HTTP request and parse the response. The response form is JSON. Your methods will be the standard HTTP GET method.
The Course Outlines REST API is read only; it allows the developers to retrieve the following information:
- A list of years
- A list of terms
- A list of departments
- A list of course numbers
- A list of course sections
- Detailed information about a course section
Structure of the REST URIs
URIs for the Course Outlines REST API resource have the following structure:
- Base URL: http://www.sfu.ca/bin/wcm/course-outlines
- With parameters: http://www.sfu.ca/bin/wcm/course-outlines?{year}/{term}/{department}/{courseNumber}/{courseSection}
- Examples with parameters:
- http://www.sfu.ca/bin/wcm/course-outlines?2015/summer
- http://www.sfu.ca/bin/wcm/course-outlines?2015/summer/cmpt/110/c100
- 200 - application/json (content)
- 404 - returned if parameter is invalid or the requested course outline does not exist
Example
{ "errorMessage":"Invalid Query String or Object does not exist." }
Index
This documents the current REST API provided by the Course Outlines
- Years
- GET {base-url}
- Terms
- Departments
- Course numbers
- Course sections
- Course Outline
Example
[ {"value":"2014"}, {"value":"2015"} ]
Terms
GET /bin/wcm/course-outlines?{year|current|registration}
Parameter | Type | Description |
---|---|---|
year | String | The year in the format yyyy (e.g. 2015). Alternately, the dynamic variable 'current' and 'registration can be used.
|
Returns a list of terms.
Available response representations:
- 200 - application/json (content)
Example
/bin/wcm/course-outlines?2015
[ {value: "spring"}, {value: "summer"}, {value: "fall"}, ]
- 404
GET /bin/wcm/course-outlines?{year|current|registration}/{term|current|registration}
Parameter | Type | Description |
---|---|---|
year | string | The year in the format yyyy (e.g. 2015). Alternately, the dynamic variable 'current' and 'registration can be used.
|
term | string | The name of the term (e.g. spring, summer, fall). Alternately, the dynamic variable 'current' and 'registration can be used.
|
Returns a list of departments.
Available response representations:
- 200 - application/json
Example
/bin/wcm/course-outlines?2015/summer
[ { text: "ALS", value: "als" }, { text: "ARCH", value: "arch" }, { text: "ASC", value: "asc" }, { text: "BISC", value: "bisc" }, { text: "BPK", value: "bpk" }, { text: "BUEC", value: "buec" }, { text: "BUS", value: "bus" }, { text: "CHEM", value: "chem" }, { text: "CHIN", value: "chin" }, { text: "CMNS", value: "cmns" }, { text: "CMPT", value: "cmpt" }, { text: "COGS", value: "cogs" }, { text: "CRIM", value: "crim" }, { text: "DIAL", value: "dial" }, { text: "DMED", value: "dmed" }, { text: "EAS", value: "eas" }, { text: "EASC", value: "easc" }, { text: "ECON", value: "econ" }, { text: "EDPR", value: "edpr" }, { text: "EDUC", value: "educ" }, { text: "ENGL", value: "engl" }, { text: "ENSC", value: "ensc" }, { text: "ENV", value: "env" }, { text: "EVSC", value: "evsc" }, { text: "FAL", value: "fal" }, { text: "FAN", value: "fan" }, { text: "FEP", value: "fep" }, { text: "FNLG", value: "fnlg" }, { text: "FNST", value: "fnst" }, { text: "FPA", value: "fpa" }, { text: "FREN", value: "fren" }, { text: "GEOG", value: "geog" }, { text: "GERM", value: "germ" }, { text: "GERO", value: "gero" }, { text: "GRAD", value: "grad" }, { text: "GSWS", value: "gsws" }, { text: "HIST", value: "hist" }, { text: "HS", value: "hs" }, { text: "HSCI", value: "hsci" }, { text: "HUM", value: "hum" }, { text: "IAT", value: "iat" }, { text: "IS", value: "is" }, { text: "ISPO", value: "ispo" }, { text: "ITAL", value: "ital" }, { text: "JAPN", value: "japn" }, { text: "LAS", value: "las" }, { text: "LBRL", value: "lbrl" }, { text: "LBST", value: "lbst" }, { text: "LING", value: "ling" }, { text: "LS", value: "ls" }, { text: "MACM", value: "macm" }, { text: "MASC", value: "masc" }, { text: "MATH", value: "math" }, { text: "MBB", value: "mbb" }, { text: "MCRT", value: "mcrt" }, { text: "MSE", value: "mse" }, { text: "PHIL", value: "phil" }, { text: "PHYS", value: "phys" }, { text: "PLCY", value: "plcy" }, { text: "POL", value: "pol" }, { text: "PSYC", value: "psyc" }, { text: "PUB", value: "pub" }, { text: "REM", value: "rem" }, { text: "SA", value: "sa" }, { text: "SAR", value: "sar" }, { text: "SCD", value: "scd" }, { text: "SPAN", value: "span" }, { text: "STAT", value: "stat" }, { text: "URB", value: "urb" }, { text: "WL", value: "wl" } ]
- 404
Example
/bin/wcm/course-outlines?2015/fall/chem
[ { text:"110", value:"110", title:"Introductory Chemistry" }, { text:"111", value:"111", title:"Introductory Chemistry and Laboratory" }, { text:"120", value:"120", title:"General Chemistry I" }, { text:"121", value:"121", title:"General Chemistry and Laboratory I" }, { text:"122", value:"122", title:"General Chemistry II" }, { text:"126", value:"126", title:"General Chemistry Laboratory II" }, { text:"180", value:"180", title:"The Chemistry of Life" }, { text:"192", value:"192", title:"Chemistry in Your Home, Work, and Environment" }, { text:"215", value:"215", title:"Introduction to Analytical Chemistry" }, { text:"230", value:"230", title:"Inorganic Chemistry" }, { text:"236W", value:"236w", title:"Inorganic Chemistry Laboratory" }, { text:"260", value:"260", title:"Atoms, Molecules, Spectroscopy" }, { text:"281", value:"281", title:"Organic Chemistry I" }, { text:"282", value:"282", title:"Organic Chemistry II" }, { text:"283", value:"283", title:"Organic Chemistry IIb" }, { text:"286", value:"286", title:"Organic Chemistry Laboratory II" }, { text:"306", value:"306", title:"Practicum I" }, { text:"307", value:"307", title:"Practicum II" }, { text:"316", value:"316", title:"Introductory Instrumental Analysis" }, { text:"366W", value:"366w", title:"Physical Chemistry Laboratory II" }, { text:"371", value:"371", title:"Chemistry of the Aqueous Environment" }, { text:"380", value:"380", title:"Chemical and Instrumental Methods of Identification of Organic Compounds" }, { text:"406", value:"406", title:"Practicum III" }, { text:"407", value:"407", title:"Practicum IV" }, { text:"408", value:"408", title:"Practicum V" }, { text:"419", value:"419", title:"Special Topics in Analytical Chemistry" }, { text:"465", value:"465", title:"Electrochemistry" }, { text:"481", value:"481", title:"Undergraduate Research" }, { text:"482", value:"482", title:"Directed Study in Advanced Topics of Chemistry" }, { text:"483", value:"483", title:"Undergraduate Research II" }, { text:"484", value:"484", title:"Two-Semester Undergraduate Research in Chemistry" }, { text:"801", value:"801", title:"Student Seminar" }, { text:"808", value:"808", title:"PhD Candidacy Examination" }, { text:"819", value:"819", title:"Special Topics in Analytical Chemistry" }, { text:"865", value:"865", title:"Electrochemistry" }, { text:"898", value:"898", title:"MSc Thesis" }, { text:"899", value:"899", title:"PhD Thesis" } ]
- 404
Course Sections
GET /bin/wcm/course-outlines?{year}/{term}/{department}/{courseNumber}
Returns a list of course sections for the given course number.
Section Fields
Field | Type | Description |
---|---|---|
text | String | The title of the section |
value | String | The value of the section (e.g., "c100") |
title | String | Course Title |
classType | String | The type of the section
|
sectionCode | String | The code of the section. Available values include:
|
associatedClass | String | Applies to non-enrollment sections only. Indicates which enrollment section (e.g. classType: "e") it belongs to. |
Available response representations:
- 200 - application/json (content)
Example
/bin/wcm/course-outlines?2015/fall/bisc/202
[ { text: "C100", value: "c100", title: "Genetics", classType: "e", sectionCode: "SEC", associatedClass: "100" }, { text: "D100", value: "d100", title: "Genetics", classType: "e", sectionCode: "LEC", associatedClass: "1" }, { text: "D101", value: "d101", title: "Genetics", classType: "n", sectionCode: "TUT", associatedClass: "1" }, { text: "D102", value: "d102", title: "Genetics", classType: "n", sectionCode: "TUT", associatedClass: "1" }, { text: "D103", value: "d103", title: "Genetics", classType: "n", sectionCode: "TUT", associatedClass: "1" }, { text: "D104", value: "d104", title: "Genetics", classType: "n", sectionCode: "TUT", associatedClass: "1" }, { text: "D105", value: "d105", title: "Genetics", classType: "n", sectionCode: "TUT", associatedClass: "1" }, { text: "D106", value: "d106", title: "Genetics", classType: "n", sectionCode: "TUT", associatedClass: "1" }, { text: "D107", value: "d107", title: "Genetics", classType: "n", sectionCode: "TUT", associatedClass: "1" }, { text: "D108", value: "d108", title: "Genetics", classType: "n", sectionCode: "TUT", associatedClass: "1" }, { text: "D109", value: "d109", title: "Genetics", classType: "n", sectionCode: "TUT", associatedClass: "1" }, { text: "D110", value: "d110", title: "Genetics", classType: "n", sectionCode: "TUT", associatedClass: "1" }, { text: "D111", value: "d111", title: "Genetics", classType: "n", sectionCode: "TUT", associatedClass: "1" }, { text: "D112", value: "d112", title: "Genetics", classType: "n", sectionCode: "TUT", associatedClass: "1" }, { text: "D113", value: "d113", title: "Genetics", classType: "n", sectionCode: "TUT", associatedClass: "1" }, { text: "D114", value: "d114", title: "Genetics", classType: "n", sectionCode: "TUT", associatedClass: "1" }, { text: "D115", value: "d115", title: "Genetics", classType: "n", sectionCode: "TUT", associatedClass: "1" } ]
Course Outline
GET /bin/wcm/course-outlines?{year}/{term}/{department}/{courseNumber}/{courseSection}
Returns the content details of a specific course outline.
Course Outline Fields
General Information
Field | Type | Description |
---|---|---|
outlinePath | String | Used to retrieve the details of the course outline |
deliveryMethod | String | Describes the format of delivery ("In person" or "Distance Education") |
departmentalUgradNotes | String | Notes provided by the department to appear on all undergraduate-level course outlines |
designation | String | If the course is eligible for a WQB designation (e.g., "Writing/Breadth-Humanities"). |
type | String | Indicates whether the course section is an enrollment section ("e") or non-enrollment ("n"). Outlines are only available for enrollment sections. |
courseDetails | String | Detailed information about the course. May include a weekly syllabus |
title | String | Course title |
prerequisites | String | List of any pre-requisite courses or coursework required to register in the course |
description | String | Official course description as displayed in the Academic Calendar |
name | String | Full course name. Includes department, course number and section in one string. |
dept | String | Department(s) offering this course |
educationalGoals | String | Standardized, term-agnostic learning objectives that every course offering will meet |
classNumber | String | A unique identifier for each course section |
shortNote | String | To be displayed when the outline is being displayed in a table by a third-party application. This field does not appear on the published outline. (See www.sfu.ca/cms/howto/components/sfu-course-outline-list.html for an example.) |
number | String | Course number (e.g., 101) |
section | String | Course section (e.g., D100) |
units | String | Credit units applied to this course (e.g. 3) |
corequisites | String | A course that must be taken concurrently |
registrarNotes | String | Notes provided by the Registrar to appear on all course outlines |
gradingNotes | String | Notes related to the grading scheme. See "Grades" section, below |
term | String | Term in which the section is offered |
notes | String | General notes about the section |
degreeLevel | String | Indicates whether the course is undergraduate or graduate-level |
Grades
Note: Although they are not included in the Grades block, the "Grading Notes" field should always be grouped with these grading-related fields.
Field | Type | Description |
---|---|---|
description | String | Grading item. |
weight | String | Weight alloted (in percentage) to that item. |
Instructor
Field | Type | Description |
---|---|---|
name | String | Display name of the instructor |
lastName | String | Last name |
firstName | String | First name |
commonName | String | Common name (optional) |
office | String | Office location |
offceHours | String | Office hours |
String | Email address | |
phone | String | Phone number |
roleCode | String | Indicates whether the instructor is the "Primary Instructor" (PI) or "Secondary Instructor" (SI) |
profileUrl | String | Link to instructor's profile |
Course schedule and Exam Schedule
Field | Type | Description |
---|---|---|
startTime | String | Start time for a course or exam |
startDate | Date | Start date for a course or exam |
endTime | String | End time for a course or exam |
endDate | Date | End date for a course or exam |
sectionCode | String | Indicates whether the section is a lecture (LEC), tutorial (TUT), lab (LAB), or seminar (SEM) |
isExam | boolean | Indicates whether the schedule is an exam (e.g., "true" or "false") |
days | String | Days on which the course or exam will be held |
campus | String | Indicates at which campus the course or exam will be held (e.g., "Burnaby") |
Required and Recommended Text
Field | Type | Description |
---|---|---|
details | String | Any text that is required for the course |
Available response representations:
- 200 - application/json (content)
Example
https://www.sfu.ca/bin/wcm/course-outlines?2015/summer/educ/100w/d100
- 404