Skip to content
This repository has been archived by the owner on Mar 19, 2022. It is now read-only.
Paul Hutchings edited this page Nov 27, 2019 · 36 revisions

Class Data

To get class data from the server for the following endpoints, the following steps need to be performed:

  1. Create a session ID. This can be any string, even an empty one.

  2. Perform a POST request to https://prd-xereg.temple.edu/StudentRegistrationSsb/ssb/term/search with the following params:

    • term - a valid term code
    • uniqueSessionId - the session ID created in step 1

    Save the values from the set-cookie header.

  3. Perform GET request at the endpoint below following the documentation using the Cookies obtained in Step 2

Note: The base URL for the following endpoints is https://prd-xereg.temple.edu/StudentRegistrationSsb/ssb. Note: The 2 endpoints below need to be reset after each request the the respective endpoint by repeating Step 2. Step 2 does not need to be done between subsequent requests if they are to different endpoints.

/searchResults

Required params:

Key Value Notes
uniqueSessionId Literally anything, as long as it is used in both the POST and GET requests
pageOffset Any number While the server will accept any value, it is most useful to leave this value at 0
pageMaxSize Any number While the server will accept any value, it is most useful to leave this value at -1
txt_term A valid term code
txt_subject One or more subject codes concatenated with a comma If sending raw, make sure to URL encode
chk_open_only true, or do not include with request Determines whether the server will send back sections that are full or not

Returns

A JSON object witht he following (relevant) properties:

  • totalCount - The total number of sections returned by Banner
  • data - An array of JSON objects with the following structure:
{
    "courseReferenceNumber": "38351",
    "courseNumber": "0822",
    "subject": "CIS",
    "sequenceNumber": "001",
    "campusDescription": "Main",
    "scheduleTypeDescription": "Base Lecture",
    "courseTitle": "Technological Horizons: Information Technology in the 21st Century",
    "maximumEnrollment": 30,
    "enrollment": 4,
    "seatsAvailable": 26,
    "waitCapacity": 100,
    "waitCount": 0,
    "waitAvailable": 100,
    "openSection": true,
    "subjectCourse": "CIS0822",
    "faculty": [
      {
        "bannerId": "906797401",
        "displayName": "Christopher Biehl",
        "emailAddress": "cbiehl@temple.edu",
        "primaryIndicator": true,
      }
    ],
    "meetingsFaculty": [
      {
        "meetingTime": {
          "beginTime": "1000",
          "building": "WCHMAN",
          "buildingDescription": "Wachman Hall",
          "campus": "MN",
          "campusDescription": "Main",
          "endTime": "1050",
          "friday": true,
          "meetingType": "LEC",
          "meetingTypeDescription": "Lecture",
          "monday": true,
          "room": "00306",
          "saturday": false,
          "sunday": false,
          "thursday": false,
          "tuesday": false,
          "wednesday": true
        }
      }
    ],
    "sectionAttributes": [
      {
        "code": "GS",
        "description": "GenEd Science & Technology",
      }
    ]
  }

/courseSearchResults

Required params:

Key Value Notes
uniqueSessionId Literally anything, as long as it is used in both the POST and GET requests
pageOffset Any number While the server will accept any value, it is most useful to leave this value at 0
pageMaxSize -1 OR (1-500) The server will return at most 500 results in a single request. -1 can be used if requesting a single subject to return all results
txt_term A valid term code
txt_subject One or more subject codes concatenated with a comma, OR not included with request If sending raw, make sure to URL encode.

Returns

A JSON object witht he following (relevant) properties:

  • totalCount - The total number of sections returned by Banner
  • data - An array of JSON objects with the following structure:
{
      "id": 8307,
      "termEffective": "201436",
      "courseNumber": "2101",
      "subject": "ACCT",
      "subjectCode": "ACCT",
      "college": "Business & Mngmnt, Fox School",
      "collegeCode": "BU",
      "department": "Business:Accounting",
      "departmentCode": "1502",
      "courseTitle": "Financial Accounting",
      "durationUnit": null,
      "numberOfUnits": null,
      "attributes": null,
      "gradeModes": null,
      "ceu": null,
      "courseScheduleTypes": null,
      "courseLevels": null,
      "creditHourHigh": null,
      "creditHourLow": 3,
      "creditHourIndicator": null,
      "lectureHourLow": null,
      "lectureHourHigh": null,
      "lectureHourIndicator": null,
      "billHourLow": 3,
      "billHourHigh": null,
      "billHourIndicator": null,
      "labHourLow": null,
      "labHourHigh": null,
      "labHourIndicator": null,
      "otherHourLow": null,
      "otherHourHigh": null,
      "otherHourIndicator": null,
      "description": null,
      "subjectDescription": "Accounting",
      "courseDescription": "Basic concepts and principles underlying the preparation and use of financial statements. Among the ",
      "division": "Undergraduate",
      "termStart": "200836",
      "termEnd": "999999",
      "preRequisiteCheckMethodCde": "C",
      "anySections": null
    }

Other Data Links

Base URL for the following endpoints: https://prd-xereg.temple.edu/StudentRegistrationSsb/ssb/classSearch

/getTerms

This endpoint returns the term codes for using when performing a search for classes. The request params appear to be indices used to slice the array on the server side.

Required params:

Key Value Notes
offset Any number While the server will accept any value, it is most useful to leave this value at 1
max Any number While the server will accept any value, it is most useful to leave this value at -1

Returns

An array of JSON objects with the following properties:

  • code - A numeric term code for the term
  • description - The full name of the term

/get_subject

Gets the list of all subjects for which courses are being offered for the term.

Required params:

Key Value Notes
term A valid term code
offset Any number While the server will accept any value, it is most useful to leave this value at 1
max Any number While the server will accept any value, it is most useful to leave this value at -1

Returns

An array of JSON objects with the following properties:

  • code - The abbreviation code for the subject
  • description - The subject name

/get_instructor

Required params:

Key Value Notes
term A valid term code
offset Any positive number Should be set to 1
max Any positive number This endpoint deviates from the previous ones, which all accept -1 to return all items. Here you must specify a positive max value. There are between 3-4k instructors at Temple so setting this value to 4000 should return everyone. Note: the request time increases quickly with a large value

Returns

An array of JSON objects with the following properties:

  • code - A numerical ID code for the given instructor
  • description - The instructor's name

The following requests do not require any params:

/get_campus

Returns

An array of JSON objects with the following properties:

  • code - The campus code
  • description - The campus name

/get_college

Returns

An array of JSON objects with the following properties:

  • code - The college code
  • description - The college name

/get_attribute

Returns

An array of JSON objects with the following properties:

  • code - The attribute code
  • description - The attribute name

Codes

Term Codes

Term codes adhere to the following pattern: `year` + a 2 digit suffix depending on the semester:
Semester Suffix
Spring 03
Summer 1 20
Summer 2 26
Fall 36

Example: Spring 2020 is 202003