Skip to main content

Schoology Mapping Notes

Usage Notes

The Schoology API is well designed for resource discovery and access to hierarchical data. For example, to retrieve assignment submissions:

  1. Query for all courses (https://api.schoology.com/v1/courses)
  2. For each course:
    1. Query for all sections (https://api.schoology.com/v1/courses/{course\_id}/sections)
    2. For each section:
      1. Query for all assignments (https://api.schoology.com/v1/sections/{section\_id}/assignments)
      2. For each assignment, which has a grade_item_id:
        1. Query for all submissions (https://api.schoology.com/v1/sections/{section\_id}/submissions/{grade\_item\_id}/)

This is very logical - and makes it a chatty interface. Thus the overall processing requires a considerable number of API calls. Furthermore, there are no tools for querying by date range or by create / modified date. Thus users of the Schoology Extractor may want to consider running during off hours rather than during school hours, and should consider carefully the frequency of data pulls, which are retrieving all available records every time the extractor runs.

Resource Mapping

Schoology ResourceData Model EntityBusiness Logic Notes
UserUsersIncludes both students and staff
Course SectionSectionsIncludes all sections that are in a currently-active Grading Period
AssignmentAssignmentsThere is a bug in the Schoology API which causes the Description  field to be blank in all requests for Assignment data. Thus this column will always be blank in the output CSV files.
Submissions + GradeSubmissions(warning)  The initial software release will not include the assignment grades
Discussion Thread in the "Section" realmSection Activities AssignmentDiscussions that are marked for grading are cross-listed in both the Section Activities and Assignments outputs
Discussion Reply in the "Section" realmSection Activities SubmissionsReplies on "graded discussions" are cross-listed in both the Section Activities and Submissions outputs
Updates in the "Section" realmSection Activities
Update Comment in the "Section" realmSection Activities
AttendanceAttendance Events
GradesGrades(warning)  The initial software release will not include these section grades
Discussion Thread in the "Groups" realmSystem Activities
Discussion Reply in the "Groups" realmSystem Activities
Updates in the "Groups" realmSystem Activities
Update Comment in the "Groups" realmSystem Activities
EnrollmentSection Associations
Usage Analytics*System ActivitiesReports on the "Login success" and "Logout" actions from the usage analytics report

Retrieving Usage Analytics

* Because of the lack of API support, the Usage Analytics processing requires manual steps by the system administrator:

  1. Sign-in to Schoology as an administrator
  2. Click on the Tools menu and then "Usage Analytics"
  3. Click the Actions button in the upper right quadrant of the screen, and choose Export Report
  4. Follow the prompts to generate an e-mailed report link
  5. Once the e-mail is received, save the downloaded file into an input directory
  6. Configure the Schoology Extractor to read from that input directory.

Schoology Enumerations

The following enumerations and value sets for Schoology are based on the Schoology API documentation. Note that user roles in Schoology are stored in a configurable attribute, Role.title so there are no static system values.

Reference to Google Classroom API

EnumerationSystem ValuesEquivalent LMS UDM Attribute
enrollments.status1: Active 2: Expired 3: Invite pending 4: Requrest Pending * 5: ArchivedLMSUserLMSSectionAssociation.EnrollmentStatus
assignments.typeassignment discussion * assessmentAssignment.AssignmentCategory
assignments.comments.status0: deleted 1: available * 2: pending moderation approvalLMSUserActivity.ActivityStatus
attendance.status1: present 2: absent 3: late 4: excusedLMSUserAttendanceEvent.AttendanceStatus

Mappings to ODS Tables

ObjectSchoology API elementsODS Column
Useruser.school_uidedfi.Student.StudentUniqueId
Sectionsection.section_school_codeedfi.Section.SectionIdentifier
Assignmentassignment.idlmsx.Assignment.AssignmentIdentifier
"Schoology"lmsx.Assignment.LMSSourceSystemDescriptorId
assignment.titlelmsx.Assignment.Title
assignment.typelmsx.Assignment.AssignmentCategoryDescriptorId
assignment.descriptionlmsx.Assignment.AssignmentDescription
Nonelmsx.Assignment.StartDateTime
Nonelmsx.Assignment.EndDateTime
assignment.duelmsx.Assignment.DueDateTime
assignment.max_pointslmsx.Assignment.MaxPoints
Submissionsubmission.id + assignment.id + section.id + user.idlmsx.AssignmentSubmission.AssignmentSubmissionIdentifier
submission.late + submission.draft + submission.duelmsx.AssignmentSubmission.SubmissionStatusDescriptorId
submission.createdlmsx.AssignmentSubmission.SubmissionDateTime
Nonelmsx.AssignmentSubmission.EarnedPoints
Nonelmsx.AssignmentSubmission.Grade