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
Example response representations:
  • 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 /bin/wcm/course-outlines

REST wrapper for the Course Outlines data. Returns a list of years.

Available response representations:

  • 200 - application/json (content)

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.

  • 'current' - will use the year of the current active term
  • 'registration' - will use the year of the current registration term.

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.

  • 'current' - will use the year of the current active term
  • 'registration' - will use the year of the current registration term.
term string

The name of the term (e.g. spring, summer, fall). Alternately, the dynamic variable 'current' and 'registration can be used.

  • 'current' - will use the term of the current active term
  • 'registration' - will use the term of the current registration term.

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

Course Numbers

GET /bin/wcm/course-outlines?{year}/{term}/{department}

Returns a list of course numbers that includes the course title for the given department.

Available response representations:

  • 200 - application/json (content)

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

  • "e" - enrollment section
  • "n" - non-enrollment section
sectionCode String

The code of the section. Available values include:

  • LEC - lecture
  • TUT - tutorial
  • LAB - lab
  • SEM - seminar
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
email 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