OneRoster 1.2 Data Models

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 5 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. Grade Book sync must be enabled for the OneRoster connection to return guardian information.
  • 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.

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 SpecCampus Interface & Database LocationDescription & Notes
sourcedIdCensus > People > Demographics > Person GUID

Person.personGUID

Returns the PersonGUID of the person this user pertains to.


e.g. 5356590D-A812-4E74-AF6F-4C96C00264CC

statusReturns 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.
dateLastModifiedReturns 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.modifiedDateFor students, reports the last modified date of their Enrollment, Identity, User Account, or Contact record.
Non-Students:  EmploymentAssignment.modifiedDate, Identity.modifiedDate, UserAccount.modifiedDate, Contact.modifiedDateFor non-students, reports the most recent last modified date of their District Assignment (when applicable), Identity, User Account, or Contact record.
metadataic.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:

  • sourcedId – Sourced ID of the related user
  • guardian – "true" or "false" based on whether this is a guardian relationship
  • relationshipType – The type of relationship defined in Campus (e.g. "Guard: Father", "Sibling")

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.
usernameCensus > 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:

  • identifier – The username for the user account
  • type – Derived based on the homepage of the user account:
    • infiniteCampusStudent – Campus Student Portal
    • infiniteCampusTeacher – Campus Instruction
    • infiniteCampusRelative – Campus Parent Portal
    • infiniteCampus – Other/Unknown Homepage (Generally for non-teacher staff)

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.

givenNameCensus > People > Identities > First Name or Legal First Name

Identity.firstName or Identity.legalFirstName

If a legal first name exists for the user AND "Omit Legal Names" is off, returns the legal first name for the user.


Otherwise, returns the first name for the user.

familyNameCensus > People > Identities > Last Name or Legal Last Name

Identity.lastName or Identity.legalLastName

If a legal last name exists for the user AND "Omit Legal Names" is off, returns the legal last name for the user.


Otherwise, returns the last name for the user.

middleNameCensus > People > Identities > Middle Name or Legal Middle Name

Identity.middleName or Identity.legalMiddleName

If a legal last name exists for the user AND "Omit Legal Names" is off, returns the legal middle name for the user.


Otherwise, returns the middle name for the user.

preferredFirstNameCensus > People > Identities > First Name

Identity.firstName

If a legal first name exists for the user AND "Omit Legal Names" is off, returns the legal first name for the user.


Otherwise, returns as null.

preferredMiddleNameCensus > People > Identities > Middle Name

Identity.middleName

If a legal last name exists for the user AND "Omit Legal Names" is off, returns the legal middle name for the user.


Otherwise, returns as null.

preferredLastNameCensus > People > Identities > Last Name

Identity.lastName

If a legal last name exists for the user AND "Omit Legal Names" is off, returns the legal last name for the user.


Otherwise, returns as null.

pronounsN/AN/A
roleCampus supports user roles of teacher, student, administrator, 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.

  • beginDate – Start Date of the role (based on Enrollment or District Assignment)
  • endDate – End Date of the role (based on Enrollment or District Assignment)
  • roleType – "primary" or "secondary" – one role in the list is chosen as the primary role based on the logic below
  • role – "student", "teacher", "guardian", "districtAdministrator", etc.
  • org – A reference to the organization (i.e. school) in which the user has this role

One role is marked as primary, based on the following criteria:

  • Active roles (end date after current date) are picked before inactive roles (end date before current date)
  • If the "role" value differs (e.g. "guardian" vs "teacher") the one higher in the following list is picked first:
    • District Administrator
    • Teacher
    • Aide
    • Student
    • Guardian
    • Relative
    • Parent
    • Proctor
    • Others
  • If the "role" value is the same (e.g. "student" vs "student"), the one with the highest ID is picked – this is a GUID, so this is essentially random.
userProfilesN/AN/A
primaryOrgN/AN/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
emailCensus > 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.
smsCensus > People > Demographics > Personal Contact Information > Cell Phone

Contact.cellPhone
Cell Phone Number
phoneCensus > People > Demographics > Person Contact Information > Other Phone

Contact.homePhone
Phone Number
agentsCensus > 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.
gradesStudent 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.
passwordN/AN/A
resourcesN/AN/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 SpecCampus Interface & Database LocationDescription & 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
statusN/AReturns as 'active'
dateLastModifiedCensus > 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.


metadataopitons: v_Address data

Can optionally include address data based on OneRoster connection settings.  Primary addresses are prioritized for selection.


ic_address:

  • number
  • street
  • tag
  • prefix
  • direction
  • apartment
  • POBox
  • city
  • state
  • zipcode
  • county
  • districtResidenceName
  • districtResidenceNumber
birthDateCensus > People > Identities > Birth Date

Identity.birthDate
Birth Date
sexCensus > People > Identities > Gender

Identity.gender
Male, Female, Other (when sex is not Male or Female) or Unspecified (when sex is null) 
americanIndianOr AlaskaNativeCensus > 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. 
asianCensus > 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.
blackOrAfricanAmericanCensus > 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 OtherPacificIslanderCensus > 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.
whiteCensus > 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 OrMoreRacesCensus > 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.
hispanicOrLatinoEthnicityCensus > 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.
countryOfBirthCodeCensus > People > Identities > Birth Country

Identity.countryOfBirthCode
Code indicating the Country of Birth. eg. US
stateOfBirthAbbreviationCensus > People > Identities > Birth State

Identity.stateOfBirthAbbreviation
Abbreviation of the State of Birth. eg MN
cityOfBirthCensus > People > Identities > Birth City

Identity.cityOfBirth
City of Birth, if specified
publicSchool ResidenceStatusN/AN/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 SpecCampus Interface & Database LocationDescription & Notes
sourcedIdDoes 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
statusStudents: 
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

metadataN/AN/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.

roleN/AIdentifies the type of enrollment record being returned. Returns as 'student' or 'teacher'.
primaryStudents: N/AA 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


All Enrollments for a Student: Student Information > General > Schedule > Walk-in Scheduler > 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


All Enrollments for a Student: Student Information > General > Schedule > Walk-in Scheduler > End Date


Roster.endDate


For students, returns the Roster End Date.

Teachers: 
Scheduling & Courses > Courses > Section Staff History > Access End Date, End Date


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 SpecCampus Interface & Database LocationDescription & Notes
sourcedIdScheduling & Courses > Courses > Section Information > Section ID

Section.sectionID
Returns the SectionID of the class.
statusN/AReturns as 'active'
dateLastModifiedScheduling & Courses > Courses > Section Information > Modified Date

Section.modifiedDate
Date the section record was last modified.
metadataN/AN/A
titleScheduling & 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
classCodeScheduling & Courses > Courses > Section Information > Teacher Display Name

Section.teacherDisplayName
Returns the Teacher Display Name.
classTypeScheduling & Courses > Courses > Section Information > Homeroom checkboxReturns as 'homeroom' if the class is marked as Homeroom. Otherwise returns as 'scheduled'.
locationScheduling & Courses > Courses > Section Information > Room

Room.name
Room where the class takes place.
gradesN/ANot supported. In Campus, grade level data is not stored fro sections (classes).
subjectsScheduling & 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. 
courseScheduling & Courses > Courses > Course Information > CourseID

Course.courseID
The Course ID of the section's (class's) parent course. Returns the courseID of the course.
schoolDoes not display in the Campus UI.

School.schoolGUID
The GUID of the School for the Calendar that the Course is in.
termsScheduling & 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).
subjectCodesScheduling & 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.

periodsScheduling & 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:
"<Term Name>-<Period Schedule Name>-<Period Name>"


e.g. "Q1-Daily-1"

resourcesN/AN/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 SpecCampus Interface & Database LocationDescription & Notes
sourcedIdScheduling & Courses > Courses > Course Informatio > Course ID

Course.courseID
Returns the courseID of the course.

e.g. 12345
statusN/AReturns as 'active'
dateLastModifiedScheduling & Courses > Courses > Course Information > Modified Date

Course.modifiedDate
Date the course record was last modified.
metadataN/AN/A
titleScheduling & Courses > Courses > Course Information > Name

Course.name
Course Name
schoolYearN/AN/A
courseCodeScheduling & Courses > Courses > Course Information > Number

Course.number
Course Number
gradesN/AN/A
subjectsScheduling & 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.
orgDoes 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.
sujbectCodesScheduling & 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.

resourcesN/AN/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 SpecCampus Interface & Database LocationDescription & Notes
sourcedIdDoes 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
statusN/AReturns as 'active'
dateLastModifiedSchools
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.
metadataSchools
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:

  • Address
  • City
  • State
  • Zip

District
School & District Settings > District > District Information > Address fields

District.address, city, state, zip
nameSchools
School & District Settings > Schools > School Information > Name

School.name
School Name
District
School & District Settings > District > District Information > Name

District.name
District Name
typeN/AReturns as 'school' for schools and 'district' for districts.
identifierSchools 
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
parentDoes 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.
childrenDoes 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 SpecCampus Interface & Database LocationDescription & Notes
sourcedIdDoes not display in the Campus UI.

Term.termID
e.g. 1234
statusN/AReturns as 'active'. Campus does not support inactive terms.
dateLastModifiedN/AReturns as the current date/time. Campus does not store Last Modified dates for Terms.
titleScheduling & Courses > Calendar Setup > Term Setup > Term Name

Term.name
Term Name
startDateScheduling & Courses > Calendar Setup > Term Setup > Term Start Date

Term.startDate
Start Date
endDateScheduling & Courses > Calendar Setup > Term Setup > Term  End Date

Term.endDate
End Date
typeN/AReturns as 'term'
parentN/AN/A - Term records do not have parents in Campus.
childrenDoes not display in the Campus UI.

Term.termGUID
This field returns the sourcedId for the associated Grading Period, which is the TermGUID.
schoolYearScheduling & 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 SpecCampus Interface & Database LocationDescription & Notes
sourceIdDoes not display in the Campus UI.

Term: Term.termGUID

One-Time Grading Task: ScheduleStructure.structureGUID

e.g. 882ed49c-f895-4fa2-9003-ce2fb524b747
statusN/AReturns as 'active'. Campus does not support inactive terms
dateLastModifiedN/AReturns as 'now'. Campus does not stores Last Modified dates for Terms.
metadataN/AN/A
titleTerms 
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'
startDateTerms & 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.
endDateTerms & 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.
typeN/AReturns as 'gradingperiod'.
parentTerms: 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. 
childrenN/AN/A
schoolYearScheduling & 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 SpecCampus Interface & Database LocationDescription & Notes
sourcedIdInstruction > 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. 
statusN/AReturns as 'active'.
dateLastModifiedInstruction > 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. 
metadataN/AN/A
titleInstruction > Grades > Grade Book > select assignment > NameNote: Campus limits assignment name to 255 characters. Name should not contain HTML text.
descriptionInstruction > Grades > Grade Book > select assignment > Summary

IMLearningObjectBlob.content
Returns the assignment description provided by the LMS, if any. Description can contact HTML text.
assignDateInstruction > 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.
dueDateInstruction > 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.
classDoes 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.
schoolDoes 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. 
gradingPeriodDoes 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"

resultValueMinN/AReturns as '0'.  Campus assignments do not currently support a minimum value other than 0. Any value provided by the external LMS is ignored. 
resultValueMaxInstruction > Grades > Grade Book > select assignment > Grading > Points

LessonPlanGroupActivity.totalPoints
Points possible on the assignment.
learningObjectiveSetN/ANot currently supported.

Results

Data Element Name in OneRoster SpecCampus Interface & Database LocationDescription & Notes
sourcedIdDoes not display in the Campus UI

LessonPlanScore.externalLMSSourcedID
Format determined by vendor. Campus generated scores use a GUID format.
statusN/AReturns as 'active'.
dateLastModifiedDoes not display in the Campus UI.

LessonPlanScore.modifiedDate
Returns the Modified Date of the record. If null, returns '1/1/1970'.
metadataN/AN/A
lineItemInstruction > 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.
studentDoes 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. 
scoreScaleN/AN/A
scoreStatusInstruction > 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:
  • Returns 'exempt' if flagged as Exempt.
  • Returns 'submitted' if not flagged as Exempt and a score exists.
  • Otherwise returns as 'not submitted'.
scoreInstruction > 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. 
textScoreInstruction > Grades Grade Book > an assignment score

LessonPlanScore.score
Returns the text value of the score, regardless of whether it is numeric or not.
scoreDateDoes 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.
commentInstruction > Grades > Grade Book > assignment score comment

LessonPlanScore.comments
Note: Campus limits comments to 250 characters.
learningObjectiveSetN/AN/A
inProgressN/AN/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: 

scoreStatusFlagged in Campus
Fully Graded,
Partial Graded,
Submitted
Removes Exempt, Missing, Late, and Dropped flags.
ExemptMarks Exempt and removes Dropped and Missing flags.
Not SubmittedRemoves Exempt, Missing, Late, and Dropped flags.
LateMarks Late flag and removes Exempt, Missing, and Dropped flags.
IncompleteMarks Incomplete flag and removes Exempt, Missing, Late, and Dropped flags.
WithdrawalMarks Dropped flag and removes Exempt, Missing, Late, and Dropped flags.
In ProgressRemoves Exempt, Missing, Late, Incomplete and Dropped flags.
MissingMarks 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 SpecCampus Interface & Database LocationDescription & Notes
sourcedIdLessonPlanGroup.groupIDeg. 12345
statusN/AReturns as 'active'.
dateLastModifiedLessonPlanGroup.modifiedDateReturns the last modified date if available, otherwise 1970-01-01.
metadataclassId: stringReturns the classId, which the the class sourcedId of the category (sectionID)

eg. 12345
titleLessonPlanGroup.nameReturns the name of the category
weightLessonPlanGroup.weightReturns the weight of the category in relation to grading.

Score Scales

Data Element Name in OneRoster SpecCampus Interface & Database LocationDescription & 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"

statusN/AReturns as 'active'.
dateLastModifiedDoes not display in the Campus UI.

GradingTaskCredit.modifiedDate
Returns the last modified date if available, otherwise 1970-01-01.
metadataN/AN/A
titleGrading & 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)"

typeGrading & Standards > Grading Setup > Score Group & Rubric Setup > Type

ScoreGroup.type
If Type is 'R', returns as 'Rubric'. Otherwise returns as 'Traditional'.
courseScheduling & Courses > Course > Course Information > CourseID

OneRosterClass.courseID
Returns the courseID of the Course that the score scale is in.
classScheduling & Courses > Course > Section Information > SectionID

OneRosterClass.sectionID
Returns the sectionID of the Section that the score scale is in.
scoreScaleValueGrading & 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:

scoreScaleValue[
{itemValueRHS: "A",itemValueLHS: "90.0"},{itemValueRHS: "B",itemValueLHS: "80.0"}, 
{itemValueRHS: "C", itemValueLHS: "70.0"}
]

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 SpecCampus Interface & Database LocationDescription & Notes
sourcedIdDoes not display in the Campus UI.

SectionGroup.sectionGroupID
eg. 12345
statusN/AReturns as 'active'.
dateLastModifiedN/AReturns the current date/time.
metadataN/AN/A
titleInstruction > Grades > Grade Book > Settings > Section Groups > Name

SectionGroup.name
Returns the name of the section group.
groupTypeDoes not display in the Campus UI.

SectionGroup.autogenerated
If the group is auto-generated, returns 'cross-listed'. Otherwise returns 'Cohort'.
classesOneRosterClass.sectionIDReturns a list of sectionIDs for sections included in the Class Group.