OneRoster is a set of specifications established by the 1EdTech Learning Consortium. Campus created our OneRoster API based on these specifications. Campus currently supports the 1.1 and 1.2 versions of this specification. This article details the 1.2 version.
See the OneRoster API article for more information about OneRoster and the Configuring OneRoster Connections article for instructions on setting up a connection. |
The tables below lay out the OneRoster 1.2 specification and identify, where applicable, the location in the Campus interface and database where this data populates, with any additional information.
See the OneRoster API Documentation (OAuth 2) article to verify the data that your district makes available in the OneRoster API.
What are 'SourcedIDs'?
The sourceId of a record is a key piece of data used to identify that record. This value is usually the unique identifier for an element, such as the GUID. In the tables below, the sourceId is the first element listed for each endpoint, with examples provided.
Users
Users must have an enabled user account to return.
There are 6 roles in the Campus implementation of OneRoster 1.2:
- Student: A person with an Enrollment in the active year.
- Enrollments marked as No Show are not returned.
- Teacher: A person with a District Assignment in the active year with a role of Teacher marked (EmploymentAssignment.teacher)
- Administrator: A non-teacher staff member. A person with a District Assignment in the active year with a role other than Teacher (EmploymentAssignment.specialEd, .program, .behavior, .health, .responseApprover, .rti, .advisor, .supervisor, .counselor, .foodService, .approver, or .framProcessor)
- Guardian: A person with access to Campus Parent and a Guardian relationship to a student in the current year.
- Relative: A person with access to Campus Parent and a non-Guardian relationship to a student in the current year. Grade Book sync must be enabled for the OneRoster connection to return relative information.
- DistrictAdministrator: A staff member with security clearance to create other staff members and perform system administrative duties.
A user's currently active role returns as 'Primary'.
Vendors may choose to access only specific types of users by using role-specific endpoints of /students and /teachers. All roles may be used via the /users endpoint.
Note: A record returns for each role, not for each individual. Multiple records may return for an individual, such as a teacher who is also a guardian or an administrator.
Data Element Name in OneRoster Spec | Campus Interface & Database Location | Description & Notes |
sourcedId | Census > People > Demographics > Person GUID Person.personGUID | Returns the PersonGUID of the person this user pertains to. e.g. 5356590D-A812-4E74-AF6F-4C96C00264CC |
status | Returns an indication of whether the user is active. | |
Student: Student Information > General > Enrollments > End Date Enrollment.endDate | Students are considered active if they have an active Enrollment according to the enrollment End Date. | |
Teacher/Aide/District Administrator: Census > Staff > District Assignment > End Date EmploymentAssignment.endDate | Teachers and Administrators are considered active if they have an active District Assignment according to assignment End Date. | |
Guardian/Relative: Census > People > Relationships > Start Date, End Date RelatedPair.startDate, RelatedPair.endDate | Guardians and Relatives are considered active if they have an active Relationship record. | |
dateLastModified | Returns the last Modified Date according to the user's role, or as 1970-01-01 if null. | |
Students: Enrollment.modifiedDate, Identity.modifiedDate, UserAccount.modifiedDate, Contact.modifiedDate | For students, reports the last modified date of their Enrollment, Identity, User Account, or Contact record. | |
Non-Students: EmploymentAssignment.modifiedDate, Identity.modifiedDate, UserAccount.modifiedDate, Contact.modifiedDate | For non-students, reports the most recent last modified date of their District Assignment (when applicable), Identity, User Account, or Contact record. | |
metadata | ic.legacySourcedId Census > People > Identities > PersonID Person.personID | Returns the 'numeric' part of a OneRoster 1.1 sourcedId to help partners map users from 1.1 to 1.2. e.g. ic.legacySourcedId: 123 |
ic_relationships Census > People > Relationships > "Portal" and "Guardian" checkbox | Returns a list of the people who have Portal access to this user. Each entry contains the following information:
| |
userMasterIdentifier | Students: Census > People > Demographics > Student State ID Person.stateID | Returns the student's State ID |
Teachers: Census > People > Demographics > Staff State ID Person.staffStateID | Returns the teacher's Staff State ID | |
Note: In OneRoster 1.1, this information was instead reported in the userIds array. | ||
username | Census > People > Identities > Person ID Person.personID | PersonID is returned through the username property. UserAccount(s) can be found in the userIds array property. |
userIds | User Management > User Accounts > User Account Information UserAccount.userName, UserAccount.homepage, UserAccount.disable, UserAccount.expiresDate, UserAccount.userID | Returns a list of User Accounts for the user, with the following properties:
Multiple userIds are listed only if multiple user accounts are active for the user. Inactive user accounts may be returned if there are no active user accounts. |
enabledUser | User Management > User Accounts > User Account Information > Disabled/Expires Date UserAccount.disable, UserAccount.expiresDate | Returns true if the user has any active user accounts, otherwise returns false. A user account is considered active if it is not disabled and it's expiration date has not passed. |
givenName | Census > People > Identities > First Name or Legal First Name Identity.firstName or Identity.legalFirstName | If a legal first name exists for the user AND the setting to Include Legal Names is marked, returns the legal first name for the user. Otherwise, returns the first name for the user. |
familyName | Census > People > Identities > Last Name or Legal Last Name Identity.lastName or Identity.legalLastName | If a legal last name exists for the user AND the setting to Include Legal Names is marked, returns the legal last name for the user. Otherwise, returns the last name for the user. |
middleName | Census > People > Identities > Middle Name or Legal Middle Name Identity.middleName or Identity.legalMiddleName | If a legal middle name exists for the user AND the setting to Include Legal Names is marked, returns the legal middle name for the user. Otherwise, returns the middle name for the user. |
preferredFirstName | Census > People > Identities > First Name Identity.firstName | If a legal first name exists for the user AND the setting to Include Legal Names is marked, returns the first name for the user. Otherwise, returns as null. |
preferredMiddleName | Census > People > Identities > Middle Name Identity.middleName | If a legal middle name exists for the user AND the setting to Include Legal Names is marked, returns the middle name for the user. Otherwise, returns as null. |
preferredLastName | Census > People > Identities > Last Name Identity.lastName | If a legal last name exists for the user AND the setting to Include Legal Names is marked, returns the last name for the user. Otherwise, returns as null. |
pronouns | N/A | N/A |
role | Campus supports user roles of teacher, student, administrator, aide, relative, and guardian. | |
Students: Student Information > General > Enrollments Enrollment.startDate, Enrollment.endDate Teachers/Staff Census > Staff > District Assignments EmploymentAssignment.startDate, EmploymentAssignment.endDate Guardians/Relatives Student Information > General > Enrollments for the related student Enrollment.startDate, Enrollment.endDate | A list of user roles, one per role / organization.
One role is marked as primary, based on the following criteria:
| |
userProfiles | N/A | N/A |
primaryOrg | N/A | N/A |
identifier | Students Census > People > Demographics > Local Student Number or Local Staff Number Person.studentNumber Teachers Census > People > Demographics > Local Staff Number Person.staffNumber | Identification number of the person Note: relatives and guardians do not have identifiers |
Census > People > Demographics > Personal Contact Information > Email Contact.email OR Contact.secondaryEmail | Email Address Note: districts may elect to use the Secondary Email Address using the email setting in the Learning Interoperability/Digital Learning Applications Configuration tool. Some vendors require all users to have an email address. | |
sms | Census > People > Demographics > Personal Contact Information > Cell Phone Contact.cellPhone | Cell Phone Number |
phone | Census > People > Demographics > Person Contact Information > Other Phone Contact.homePhone | Phone Number |
agents | Census > People > Relationships > Portal checkbox RelatedPair.portal | Returns as list of the Guardians and Relatives of the student who have access to the Campus Parent Portal. |
grades | Student Information > General > Enrollments > Grade; System Administration > Resources > Grade Level Definitions Enrollment.grade, GradeLevel.stateGrade, GradeLevel.ncesGrade | Returns a list of CEDS Grade Level(s), mapped to the grade level(s) in which the students are enrolled. Only returns for students. |
password | N/A | N/A |
resources | N/A | N/A |
Demographics
Returns demographic data based on the current active identity for the person. Only one Identity may be active at a time. Follows External LMS Exclude logic.
This endpoint can be turned off for connections using OAuth 2.
Data Element Name in OneRoster Spec | Campus Interface & Database Location | Description & Notes |
sourcedId | Census > People > Identities > Person GUID Person.personGUID | Returns the PersonGUID of the person this record pertains to. e.g. 882ed49c-f895-4fa2-9003-ce2fb524b747 |
status | N/A | Returns as 'active' |
dateLastModified | Census > People > Demographics/Identities > Modified Date; Census > People > Demographics > Personal Contact Information > Modified Date Identities.modifiedDate, Contact.modified Date | The more recent date between the Contact and Identity modified dates. If null, returns 1970-01-01. |
metadata | opitons: v_Address data | Can optionally include address data based on OneRoster connection settings. Primary addresses are prioritized for selection. ic_address:
districtResidenceName and Number return based on the Legal District of Residence field on the student's Enrollment. |
birthDate | Census > People > Identities > Birth Date Identity.birthDate | Birth Date |
sex | Census > People > Identities > Gender Identity.gender | Male, Female, Other (when sex is not Male or Female) or Unspecified (when sex is null) |
americanIndianOr AlaskaNative | Census > People > Identities > Race/Ethnicity > American Indian or Alaska Native Identity.raceEthnicityFed = 2 | If Hispanic/Latino is true, always returns false. Otherwise, if Race/Ethnicity is American Indian or Alaska Native and no other race/ethnicity is marked, returns true. |
asian | Census > People > Identities > Race/Ethnicity > Asian Identity.raceEthnicityFed = 3 | If Hispanic/Latino is true, always returns false. Otherwise, if Race/Ethnicity is Asian and no other race/ethnicity is marked, returns true. |
blackOrAfricanAmerican | Census > People > Identities > Race/Ethnicity > Black or African American Identity.raceEthnicityFed = 4 | If Hispanic/Latino is true, always returns false. Otherwise, if Race/Ethnicity is Black or African American and no other race/ethnicity is marked, returns true. |
nativeHawaiianOr OtherPacificIslander | Census > People > Identities > Race/Ethnicity > Native Hawaiian or Other Pacific Islander Identity.raceEthnicityFed = 5 | If Hispanic/Latino is true, always returns false. Otherwise, if Race/Ethnicity is Native Hawaiian or Other Pacific Islander and no other race/ethnicity is marked, returns true. |
white | Census > People > Identities > Race/Ethnicity > White Identity.raceEthnicityFed = 6 | If Hispanic/Latino is true, always returns false. Otherwise, if Race/Ethnicity is White and no other race/ethnicity is marked, returns true. |
demographicRaceTwo OrMoreRaces | Census > People > Identities > Race/Ethnicity Identity.raceEthnicityFed = 7 | If Hispanic/Latino is true, always returns false. Otherwise, returs as true of two or more of the races/ethnicities above are marked. |
hispanicOrLatinoEthnicity | Census > People > Identities > Race/Ethnicity > Is the individual Hispanic/Latino? Identity.hispanicEthnicity | Returns as true if Y is selected for the Hispanic/Latino question, otherwise returs false. |
countryOfBirthCode | Census > People > Identities > Birth Country Identity.countryOfBirthCode | Code indicating the Country of Birth. eg. US |
stateOfBirthAbbreviation | Census > People > Identities > Birth State Identity.stateOfBirthAbbreviation | Abbreviation of the State of Birth. eg MN |
cityOfBirth | Census > People > Identities > Birth City Identity.cityOfBirth | City of Birth, if specified |
publicSchool ResidenceStatus | N/A | N/A |
Enrollments
Only returns for students and teachers. OneRoster and Campus define 'enrollment' differently. In OneRoster, an 'enrollment' indicates membership in a class. In Campus, this data is stored in the Schedule for students and the Staff History tab for Teachers.
Follows External LMS Exclude logic.
Data Element Name in OneRoster Spec | Campus Interface & Database Location | Description & Notes |
sourcedId | Does not display in Campus UI. 's' + Roster.rosterID | For students, returns the letter 's' prepended to the RosterID. e.g. s123453678 |
Does not display in Campus UI. 't' + SectionStaffHistory.historyID | For teachers, returns the letter 't' prepended to the Staff History ID.e.g. t123456 | |
status | Students: All Enrollments for a Section: Scheduling & Courses > Courses > Section Roster All Enrollments for a Student: Student Information > General > Schedule > Walk-in Scheduler > Section > End Date Roster.endDate | For students, if the Roster End Date is null or after the current date, returns 'active'. Otherwise returns 'tobedeleted'. |
Teachers: Scheduling & Courses > Courses > Section Staff History > End Date SectionStaffHistory.endDate | For teachers, if the Staff History End Date is null or after the current date, returns 'active'. Otherwise returns 'tobedeleted'. | |
dateLastModified | Student: Student Information > General > Schedule > Walk-In Scheduler > select a roster Roster.modifiedDate or Roster.createdDate | Returns the Modified Date, or the Created Date if null. Note: Created Date does not display in the Campus UI. |
Teacher: Scheduling & Courses > Courses > Section Staff History > select a record SectionStaffHistory.modifiedDate or SectionStaffHistory.createdDate | ||
metadata | N/A | N/A |
user | Census > People > Demographics > Person GUID Person.personGUID | A reference to the User that this enrollment pertains to. Returns the personGUID of the user. |
class | Scheduling & Courses > Courses > Section Information > SectionID Section.sectionID | A reference to the Class (Campus Section) that the user for this enrollment is enrolled in. Returns the sectionID of the section. |
school | Does not display in the Campus UI. School.schoolGUID, District.districtGUID | A reference to the School that contains the Class the user is enrolled in. Returns the schoolGUID of the school. |
role | N/A | Identifies the type of enrollment record being returned. Returns as 'student' or 'teacher'. |
primary | Students: N/A | A value does not return for students. |
Teachers: Scheduling & Courses > Courses > Section Staff History > Primary Teacher vs Teacher SectionStaffHistory.staffType | For teachers, returns as TRUE if the teacher is designated as the Primary teacher of the section. Otherwise returns as FALSE. | |
beginDate | Students: All Enrollments for a Section: Scheduling & Courses > Section Roster > Start Date
Roster.startDate | For students, returns the Roster Start Date. If a date is not listed, returns as null. |
Teachers: Scheduling & Courses > Courses > Section Staff History > Access Start Date, Start Date SectionStaffHistory.accessStartDate SectionStaffHistory.startDate | For teachers, returns the Access Date from the Staff History record, if entered, or the Start Date of the Staff History record. If a date is not entered, returns as null. | |
endDate | Students: All Enrollments for a Section: Scheduling & Courses > Section Roster > End Date
Roster.endDate | For students, returns the Roster End Date. |
Teachers: SectionStaffHistory.accessEndDate SectionStaffHistory.endDate | For teachers, returns the Access End Date from the Staff History record, if entered, or the End Date of the Staff History record. | |
If an End Date is entered in Campus, a value of endDate + one day returns. One day is added because dates are inclusive in Campus (access ends at the end of the endDate) whereas in OneRoster, dates are exclusive (access ends at the beginning of the endDate). |
Classes
Returns the classes (sections) for active courses in the current school year. Follows External LMS Exclude logic. Excluded classes exclude the enrollments for the class.
Note: The Classes endpoint is cached hourly. See the Caching OneRoster Data section for more information.
Data Element Name in OneRoster Spec | Campus Interface & Database Location | Description & Notes |
sourcedId | Scheduling & Courses > Courses > Section Information > Section ID Section.sectionID | Returns the SectionID of the class. |
status | N/A | Returns as 'active' |
dateLastModified | Scheduling & Courses > Courses > Section Information > Modified Date Section.modifiedDate | Date the section record was last modified. |
metadata | N/A | N/A |
title | Scheduling & Courses > Courses > Course Information > Name, Number; Section Information > Number Course.name., Course.number, Section.number | Returns in a format of "<course.number> <section.number> <course.name>" e.g. 101 2 Math |
classCode | Scheduling & Courses > Courses > Section Information > Teacher Display Name Section.teacherDisplayName | Returns the Teacher Display Name. |
classType | Scheduling & Courses > Courses > Section Information > Homeroom checkbox | Returns as 'homeroom' if the class is marked as Homeroom. Otherwise returns as 'scheduled'. |
location | Scheduling & Courses > Courses > Section Information > Room Room.name | Room where the class takes place. |
grades | N/A | Not supported. In Campus, grade level data is not stored fro sections (classes). |
subjects | Scheduling & Courses > Courses > Course > Subject Type, Core Academic Class If Subject Type is CORE: Course.coreSubject Otherwise Course.subjectType | If the Course's Subject Type is CORE, returns the value of the Core Academic Class dropdown list. If Subject Type has any other value selected, returns the Subject Type. If Subject Type is blank, this property is omitted. Note: Only one value returns for this attribute. |
course | Scheduling & Courses > Courses > Course Information > CourseID Course.courseID | The Course ID of the section's (class's) parent course. Returns the courseID of the course. |
school | Does not display in the Campus UI. School.schoolGUID | The GUID of the School for the Calendar that the Course is in. |
terms | Scheduling & Courses > Courses > Section Information > Section Schedule Placement SectionPlacement.termID | Returns a list of references to the Term(s) that this section is scheduled into, according to the Section Schedule Placement. Returns the TermID of the term(s). |
subjectCodes | Scheduling & Courses > Courses > Course Information > NCES Data > NCES Code (derived from SCED Subject Area + SCED Course Identifier Course.scedSubjectArea Course.scedCourseID | If either SCED Subject Area or SCED Course Identifier are null, returns null. Otherwise, returns the concatenation of SCED Subject Area and SCED Course Identifier. e.g. SCED Subject Area = "02: Mathematics" and SCED Course Identifier = "051: Pre-Algebra" → returns as "02051" Note: Only one value is returned in this list. |
periods | Scheduling & Courses > Courses > Section Information > Section Schedule Placement Term.name, PeriodSchedule.name, Period.name | Returns a list of periods this section is scheduled in, likely containing a period for each term, in the following format: e.g. "Q1-Daily-1" |
resources | N/A | N/A |
Courses
Returns Active Courses for the current school year. Follows External LMS Exclude logic. Records related to an excluded course (classes, enrollments, etc) are not returned.
Note that if a school used Course Masters to manage course information, course details may change as a result of data being pushed from the Master. Data is returned via the API from Course Information so changes made at the Course Master level that have not been pushed to the Course are not reflected in the API. Likewise, if the Course Information tool is locked from editing at the Course Catalog level, edits must be made to the Course Master and then pushed to the course.
Data Element Name in OneRoster Spec | Campus Interface & Database Location | Description & Notes |
sourcedId | Scheduling & Courses > Courses > Course Informatio > Course ID Course.courseID | Returns the courseID of the course. e.g. 12345 |
status | N/A | Returns as 'active' |
dateLastModified | Scheduling & Courses > Courses > Course Information > Modified Date Course.modifiedDate | Date the course record was last modified. |
metadata | N/A | N/A |
title | Scheduling & Courses > Courses > Course Information > Name Course.name | Course Name |
schoolYear | N/A | N/A |
courseCode | Scheduling & Courses > Courses > Course Information > Number Course.number | Course Number |
grades | N/A | N/A |
subjects | Scheduling & Courses > Courses > Course Information > Subject Type, Core Academic Class If Subject Type is CORE: Course.coreSubject Otherwise Course.subjectType | If the Course's Subject Type is CORE, returns the value of the Core Academic Class dropdown list. If Subject Type has any other value selected, returns the Subject Type. If Subject Type is blank, this property is omitted. Note: Only one value returns for this attribute. |
org | Does not display in the Campus UI. School.schoolGUID | A reference to the School that contains this course. Returns the sourcedId of the calendar's school. |
sujbectCodes | Scheduling & Courses > Courses > Course Information > NCES Data > NCES Code (derived from SCED Subject Area + Sced Coures Identifier) Course.scedSubjectArea Course.scedCourseID | If either SCED Subject Area or SCED Course Identifier are null, returns null. Otherwise, returns the concatenation of SCED Subject Area and SCED Course Identifier. e.g. SCED Subject Area = "02: Mathematics" and SCED Course Identifier = "051: Pre-Algebra" → returns as "02051" Note: Only one value is returned in this list. |
resources | N/A | N/A |
Orgs (Districts & Schools)
The Campus implementation of the OneRoster specification returns districts and schools as orgs because the specification does not have a place for returning district-level information. Schools marked as External LMS Exclude are not returned. Records related to excluded schools (courses, classes, students, etc) are not returned. Schools without a calendar for the current school year can be included in the results.
District and school records are differentiated using the type element. Orgs returns as two endpoints:
- /schools: Returns a record for each school
- /orgs: Returns a record for the district as well as a record for each school.
If desired, vendors have the option of only returning the /schools endpoint to exclude district information.
Data Element Name in OneRoster Spec | Campus Interface & Database Location | Description & Notes |
sourcedId | Does not display in the Campus UI. School.schoolGUID District.districtGUID | Returns schoolGUID for schools, returns districtGUID for the district. e.g. 882ed49c-f895-4fa2-9003-ce2fb524b747 |
status | N/A | Returns as 'active' |
dateLastModified | Schools School & District Settings > Schools > School Information > Modified Date School.modifiedDate | Date the school record was last modified. |
District School & District Settings > District > District Information > Modified Date District.modifiedDate | Date the district record was last modified. | |
metadata | Schools School & District Settings > Schools > School Information > Address fields School.address, city, state, zip | Can optionally include address data for the School/District based on OneRoster connection settings. "ic_address" contains:
|
District School & District Settings > District > District Information > Address fields District.address, city, state, zip | ||
name | Schools School & District Settings > Schools > School Information > Name School.name | School Name |
District School & District Settings > District > District Information > Name District.name | District Name | |
type | N/A | Returns as 'school' for schools and 'district' for districts. |
identifier | Schools School & District Settings > Schools > School Information > State School Number School.number | State School Number |
District School & District Settings > District > District Information > State District Number District.number | State District Number | |
parent | Does not display in the Campus UI. District.discrictGUID | For schools, returns a reference to the district. Returns the districtGUID of the district. For districts, parent is not returned. |
children | Does not display in the Campus UI. School.schoolGUID | For schools, children are not returned. For districts, returns a list of the schoolGUID for all schools in the district. |
Terms
Terms for the current school year. Follows External LMS Exclude logic.
Data Element Name in OneRoster Spec | Campus Interface & Database Location | Description & Notes |
sourcedId | Does not display in the Campus UI. Term.termID | e.g. 1234 |
status | N/A | Returns as 'active'. Campus does not support inactive terms. |
dateLastModified | N/A | Returns as the current date/time. Campus does not store Last Modified dates for Terms. |
title | Scheduling & Courses > Calendar Setup > Term Setup > Term Name Term.name | Term Name |
startDate | Scheduling & Courses > Calendar Setup > Term Setup > Term Start Date Term.startDate | Start Date |
endDate | Scheduling & Courses > Calendar Setup > Term Setup > Term End Date Term.endDate | End Date |
type | N/A | Returns as 'term' |
parent | N/A | N/A - Term records do not have parents in Campus. |
children | Does not display in the Campus UI. Term.termGUID | This field returns the sourcedId for the associated Grading Period, which is the TermGUID. |
schoolYear | Scheduling & Courses > Calendar Setup > School Year Setup > select active year > End Year, Active SchoolYear.endYear, SchoolYear.active | Returns the End Year of the term's school year. |
Grading Periods
In Campus, Grading Periods is the same thing as Terms. Therefore, this endpoint returns the same records as the Terms endpoint. This endpoint also returns a record for each Calendar + Schedule Structure combination that has an in-use One-Time Grading Tasks.
Follows External LMS Exclude logic.
Data Element Name in OneRoster Spec | Campus Interface & Database Location | Description & Notes |
sourceId | Does not display in the Campus UI. Term: Term.termGUID One-Time Grading Task: ScheduleStructure.structureGUID | e.g. 882ed49c-f895-4fa2-9003-ce2fb524b747 |
status | N/A | Returns as 'active'. Campus does not support inactive terms |
dateLastModified | N/A | Returns as 'now'. Campus does not stores Last Modified dates for Terms. |
metadata | N/A | N/A |
title | Terms Scheduling & Courses > Calendar Setup > Term Setup > Term Name Term.name | For Term-related Grading Periods, returns Term Name. |
One-Time Grading Tasks Scheduling & Courses > Calendar Setup > Calendar Information > Name, Schedule Structure Setup > Name Calendar.name, ScheduleStructure.name | For One-Time Grading Task Grading Periods, returns the following: "OneTime: <calendar.name> <scheduleStructure.name> e.g. 'OneTime: 21-22 Harrison High Main' | |
startDate | Terms & One-Time Grading Tasks Scheduling & Courses > Calendar Setup > Term Setup > Term Start Date Term.startDate | For Term-related Grading Periods, returns the Start Date. For One-Time Grading Task Grading Periods, returns the earliest Start Date for any Term in the term schedule. |
endDate | Terms & One-Time Grading Tasks Scheduling & Courses > Calendar Setup > Term Setup > Term End Date Term.endDate | For Term-related Grading Periods, returns the End Date. For One-Time Grading Task Grading Periods, returns the latest End Date for any Term in the term schedule. |
type | N/A | Returns as 'gradingperiod'. |
parent | Terms: Does not display in the Campus UI. Term.termID | For Terms, returns the sourceId of the Term record associated with the Grading Period, which is the term's TermID. Does not return for One-Time Grading Tasks. |
children | N/A | N/A |
schoolYear | Scheduling & Courses > Calendar Setup > School Year Setup > select active year > End Year, Active SchoolYear.endYear, SchoolYear.active | Returns the End Year of the term's school year. |
Academic Sessions
Academic Sessions are a combination of all possible terms and grading periods for the section. Follows External LMS Exclude logic.
The Academic Sessions endpoint returns the same data as the Terms and Grading Periods endpoints documented above.
Grade Book Data
Grade Book data is only available via connections to Verified Vendors. Districts must have an active Campus Learning license to return Grade Book data via OneRoster.
LineItems (Assignments)
Note: Assignments returned via OneRoster can only be scored using points. No data received from the vendor program can be edited on an assignment, but other data can be.
Support Information: Assignments received via the OneRoster API have a version shown in the bottom-right corner of the assignment. Click to view additional information about the assignment. |
Data Element Name in OneRoster Spec | Campus Interface & Database Location | Description & Notes |
sourcedId | Instruction > Grades > Grade Book > select assignment > click version at bottom-right > sourcedID IMLearningObjectSection.externalLMSSourcedId | If the assignment was created in the external LMS, the 'Support Information' tool tip includes the identifier assignment by the external LMS. |
status | N/A | Returns as 'active'. |
dateLastModified | Instruction > Grades > Grade Book > select assignment > click version at bottom-right > Modified Date IMLearningObject.modifiedDate, IMLearningObjectSection.modifiedDate, LessonPlanGroupActivity.modifiedDate | Returns the most recent date among the three Modified Dates stored. Most data for imported assignments cannot be updated in Campus. |
metadata | N/A | N/A |
title | Instruction > Grades > Grade Book > select assignment > Name | Note: Campus limits assignment name to 255 characters. Name should not contain HTML text. |
description | Instruction > Grades > Grade Book > select assignment > Summary IMLearningObjectBlob.content | Returns the assignment description provided by the LMS, if any. Description can contact HTML text. |
assignDate | Instruction > Grades > Grade Book > select assignment > Start Date IMLearningObjectSection.startDate | Note: Vendors must send an assignDate that is at least one minute before the dueDate to correctly create an assignment. Otherwise, an error occurs. |
dueDate | Instruction > Grades > Grade Book > select assignment > End Date IMLearningObjectSection.endDate | Note: This date must fall within the term(s) in which the section is taught. Must be at least one minute after the assignDate or an error occurs. |
class | Does not display in the Campus UI. IMLearningObjectSection.sectionID | Returns the SectionID for a the section an assignment is in, according to information provided by the vendor. An assignment can only be aligned to one section. |
school | Does not display in the Campus UI. School.schoolGUID | Returns the schoolGUID of the school that contains the assignment. |
category | Does not display in the Campus UI. LessonPlanGroupActivity.groupID | Returns the groupID of the Category that contains the assignment. |
gradingPeriod | Does not display in the Campus UI. Term.termGUID OneRosterClass.structureID (ScheduleStructure.structureID) | If the assignment is aligned to a Category within a Term, returns the TermGUID. Otherwise, returns the StructureGUID of the Schedule Structure. Refers to the Grading Period that the assignment falls into. |
academic Session | Does not display in the Campus UI. Term.termID | Returns the termID of the Academic Session (Term) that the assignment falls in. |
scoreScale | GradingTaskCredit.scoreGroupID, Section.sectionID, LessonPlanGroupActivity.taskID | Returns the Score Scale (Grading Task ready for use in a Section) used by the assignment expressed as a Sourced ID. The Sourced ID returns as the concatenation of <scoreGroupID> _ <sectionID> _ <taskID> delimited by underscores. e.g. "12345_98765_1234" |
resultValueMin | N/A | Returns as '0'. Campus assignments do not currently support a minimum value other than 0. Any value provided by the external LMS is ignored. |
resultValueMax | Instruction > Grades > Grade Book > select assignment > Grading > Points LessonPlanGroupActivity.totalPoints | Points possible on the assignment. |
learningObjectiveSet | N/A | Not currently supported. |
Results
Data Element Name in OneRoster Spec | Campus Interface & Database Location | Description & Notes |
sourcedId | Does not display in the Campus UI LessonPlanScore.externalLMSSourcedID | Format determined by vendor. Campus generated scores use a GUID format. |
status | N/A | Returns as 'active'. |
dateLastModified | Does not display in the Campus UI. LessonPlanScore.modifiedDate | Returns the Modified Date of the record. If null, returns '1/1/1970'. |
metadata | N/A | N/A |
lineItem | Instruction > Grades > Grade Book > assignment > click version at bottom-right > Sourced ID (see LineItems for more information) IMLearningObjectSection.externalLMSSourcedId | Returns the sourceId of the lineItem (assignment) that is being created or updated. |
student | Does not display in the Campus UI. Person.personGUID | Returns the personGUID of the associated student. |
class | Does not display in the Campus UI. IMLearningObjectSection.sectionID | Returns the sectionID of the Class (Section) that the score's assignment is in. |
scoreScale | N/A | N/A |
scoreStatus | Instruction > Grade Book > score and flag(s) for an assignment LessonPlanScore.exempt, LessonPlanScore.missing, LessonPlanScore.score | For incoming scoreStatus data sent to Campus: This element returns based on whether the incoming Result conforms to the candidate version of the 1.2 specification that was released initially, or the finalized version. Finalized version of specification: if scoreStatus is 'exempt', flagged as Exempt in Campus. Also flagged based on the incomplete, late, and missing elements described at the end of this table. Candidate version of specification: see section following for logic. |
For outgoing scoreStatus data from Campus:
| ||
score | Instruction > Grades Grade Book > an assignment score LessonPlanScore.score | If the score is a numeric value, returns the float value of the score. Otherwise returns as null. |
textScore | Instruction > Grades Grade Book > an assignment score LessonPlanScore.score | Returns the text value of the score, regardless of whether it is numeric or not. |
scoreDate | Does not display in the Campus UI. LessonPlanScore.modifiedDate | Returns the Modified Date of the score, or as the current date/time if null. This field does not return the LessonPlanScore.scoreDate. |
comment | Instruction > Grades > Grade Book > assignment score comment LessonPlanScore.comments | Note: Campus limits comments to 250 characters. |
learningObjectiveSet | N/A | N/A |
inProgress | N/A | N/A |
incomplete | Instruction → Grades → Grade Book → score and flag(s) for an assignment LessonPlanScore.incomplete | Returns as 'true' when the score is flagged as incomplete. |
late | Instruction → Grades → Grade Book → score and flag(s) for an assignment LessonPlanScore.late | Returns as 'true' when the score is flagged as late. |
missing | Instruction → Grades → Grade Book → score and flag(s) for an assignment LessonPlanScore.missing | Returns as 'true' when the score is flagged as missing. |
Incoming Score Status based on Candidate Version of 1.2 Specification
If the scoreStatus on an incoming Result record conforms to the candidate version of the 1.2 specification, scores in Campus are flagged as follows:
scoreStatus | Flagged in Campus |
---|---|
Fully Graded, Partial Graded, Submitted | Removes Exempt, Missing, Late, and Dropped flags. |
Exempt | Marks Exempt and removes Dropped and Missing flags. |
Not Submitted | Removes Exempt, Missing, Late, and Dropped flags. |
Late | Marks Late flag and removes Exempt, Missing, and Dropped flags. |
Incomplete | Marks Incomplete flag and removes Exempt, Missing, Late, and Dropped flags. |
Withdrawal | Marks Dropped flag and removes Exempt, Missing, Late, and Dropped flags. |
In Progress | Removes Exempt, Missing, Late, Incomplete and Dropped flags. |
Missing | Marks Missing flag and removes Exempt, Late, Incomplete, and Dropped flags. |
Categories
Note: Campus does not currently allow external LMS's to create, update, or delete categories via OneRoster.
Data Element Name in OneRoster Spec | Campus Interface & Database Location | Description & Notes |
sourcedId | LessonPlanGroup.groupID | eg. 12345 |
status | N/A | Returns as 'active'. |
dateLastModified | LessonPlanGroup.modifiedDate | Returns the last modified date if available, otherwise 1970-01-01. |
metadata | classId: string | Returns the classId, which the the class sourcedId of the category (sectionID) eg. 12345 |
title | LessonPlanGroup.name | Returns the name of the category |
weight | LessonPlanGroup.weight | Returns the weight of the category in relation to grading. |
Score Scales
Data Element Name in OneRoster Spec | Campus Interface & Database Location | Description & Notes | |
---|---|---|---|
sourcedId | Does not display in the Campus UI. GradingTaskCredit.scoreGroupID, Section.sectionID LessonPlanGroupActivity.taskID | The Sourced ID returns as the concatenation of <scoreGroupID> _ <sectionID> _ <taskID> delimited by underscores. Indicates the Grading Task of the assignment. e.g. "12345_98765_1234" | |
status | N/A | Returns as 'active'. | |
dateLastModified | Does not display in the Campus UI. GradingTaskCredit.modifiedDate | Returns the last modified date if available, otherwise 1970-01-01. | |
metadata | N/A | N/A | |
title | Grading & Standards > Grading Setup > Grading Task Setup > Name; Scheduling & Courses > Course > Course Information > Name, Number; Section Information > Number; Grading & Standards > Score Group & Rubric Setup > Score Group GradingTask.title OneRosterClass.title (<course.number> <section.number> <course.name>) ScoreGroup.name | Returns the concatenation of Grading Task Name, class Title, and Score Group Name. Class Title is Course Number, Section Number, and Course Name. e.g. "Quarter | 4610 AP U.S. Government | ABC+- (Weighted)" | |
type | Grading & Standards > Grading Setup > Score Group & Rubric Setup > Type ScoreGroup.type | If Type is 'R', returns as 'Rubric'. Otherwise returns as 'Traditional'. | |
course | Scheduling & Courses > Course > Course Information > CourseID OneRosterClass.courseID | Returns the courseID of the Course that the score scale is in. | |
class | Scheduling & Courses > Course > Section Information > SectionID OneRosterClass.sectionID | Returns the sectionID of the Section that the score scale is in. | |
scoreScaleValue | Grading & Standards > Grading Setup > Score Group & Rubric Setup itemValueRHS: ScoreListItem.score itemValueLHS: ScoreListItem.minPercent | Returns a list of mappings of point values to the score s in the score scale. eg:
|
Class Groups
Class groups is a OneRoster extension. In Campus, teachers are allowed to create cross-section Section Groups. These are represented in OneRoster as Class Groups.
Data Element Name in OneRoster Spec | Campus Interface & Database Location | Description & Notes |
---|---|---|
sourcedId | Does not display in the Campus UI. SectionGroup.sectionGroupID | eg. 12345 |
status | N/A | Returns as 'active'. |
dateLastModified | N/A | Returns the current date/time. |
metadata | N/A | N/A |
title | Instruction > Grades > Grade Book > Settings > Section Groups > Name SectionGroup.name | Returns the name of the section group. |
groupType | Does not display in the Campus UI. SectionGroup.autogenerated | If the group is auto-generated, returns 'cross-listed'. Otherwise returns 'Cohort'. |
classes | OneRosterClass.sectionID | Returns a list of sectionIDs for sections included in the Class Group. |