All Collections
Admins and Org Managers (Gold Plan)
Sync rosters with your Student Information System (SIS) using OneRoster
Sync rosters with your Student Information System (SIS) using OneRoster
Jessica Blackburn avatar
Written by Jessica Blackburn
Updated over a week ago

With Formative you can sync rosters with your Student Information System. Syncing rosters with your SIS is one way to set up all teacher and student accounts, and place all students and teachers into their classes automatically.

Step 1: Check if you have software that supports OneRoster

In order to set up a OneRoster connection, you will need an SIS or other software system component that allows access to rosters using OneRoster 1.1 or 1.2 API or the export of CSV files to an SFTP location. Aeries, ClassLink, PowerSchool Unified, and Infinite Campus are some examples of software known to support the OneRoster model. You can confirm if your SIS is a certified OneRoster product here.

Some of our customers do not have any system that supports OneRoster. In this case some have adopted ClassLink, or Clever, which can be used to add OneRoster support to a variety of SIS systems (read more about that here). A few others have implemented a custom software solution on their end to generate OneRoster files and upload them to an SFTP server.

Once you have identified a way to provide us with OneRoster data, you will have to consult its documentation (assuming it is not a custom solution) to determine how to setup a OneRoster export and provide us with the information needed to access it.

Step 2: Get OneRoster Sync Credentials Or Setup OneRoster SFTP Uploads

For OneRoster API integrations, you are given a OneRoster Base URL, Consumer Key, and Consumer Secret.

Blackbaud users: your base URL is based on your Blackbaud access URL; if your Blackbaud domain name is then your Base URL will be

You can encrypt the consumer secret into a secure sharing URL using Send the Base URL, Consumer Key, and Consumer Secret to your implementation specialist, or send a confidential email to

Note that if you are using ClassLink, you can instruct them to share the roster data with us instead of sending us the credentials. See this article for more details.

If your system does not support OneRoster API integration, but rather exports CSV files that must be added to a ZIP file and uploaded to an SFTP site, contact us to set up an SFTP account you can upload the file to.

We only need these files for rostering from zipped CSV files:

  • academicSessions.csv

  • classes.csv

  • enrollments.csv

  • orgs.csv

  • users.csv

You can optionally provide courses.csv

Step 3: Establish scope of the import

In addition to the OneRoster access information, we will want to know which organizations (schools, districts, departments, etc.) you wish to import to help us validate the data we receive and also to avoid importing the wrong users. We will want to know the NCES ID (or other government ID if available) of the each school and district as well so we can avoid data duplication in our system.

Because your organization will have some degree of control over the users imported by OneRoster, we restrict the users that are imported to a list of emails and email address domains that we can confirm you have control of. We will need to know all the email domains that your district owns to enable the import of those users via OneRoster. If you have a subset of users outside your controlled email domain (contractors, for example), we can also accommodate a small number of specific individual email address.

Step 4: Make sure we have the information we need for the import

Having done all of the above, this is information you should be prepared to provide us if you hadn't already done so:

  • If API sync is supported: OneRoster API consumer key, secret, and Base URL (do not send these if data is shared using ClassLink, however)

  • List of organizations to roster

  • NCES / government identifiers for each organization, if available

  • Email domains of the users to import

  • When to start the import running (if not immediately)

Additional Notes

  • Existing Classes: Classes imported from OneRoster are not linked or merged with any existing classes, so you will have to decide what to do with duplicate classes for teachers who have already setup their classes. Generally it is easiest for teachers to keep existing classes and archive the classes created by OneRoster when they get duplicates. The downside of this is that those classes will not automatically update from the SIS, but the benefit is that existing assignments to the class will not have to be copied to the new class.

  • Teacher Login: Teachers will be emailed some information about their new account, including how to set their password if they need to. If they use single sign-on (Google, Clever, Canvas, Microsoft, LTI, etc..) to login, they won't need to create a password.

  • Student Login: If students cannot use a single sign-on to login, teachers can set their passwords via the classes page. Students with access to their email can also use the "forgot password" feature to set their password. We also offer the option of setting each student's password to their "identifier" (e.g. Student ID) by default, although this is not the most secure approach.

  • Administrator Users: Although we normally only set up students and teachers using OneRoster, it can also be used to control Formative administrators. If you provide us with a list of the users you believe should be formative administrators, we can check whether that matches the OneRoster user data and keep this information up to date using OneRoster in addition to the students and teachers. If that is not the case then the Formative administrator access will have to be managed manually.

  • Class Start & End Dates: If the OneRoster data includes start and end dates for classes, then classes will not be created if they are more than 14 days away. Classes that were created in the past that are more than 14 days old will be marked archived.

Platforms that provide a OneRoster API that is known to work with Formative

What's Next?

Did this answer your question?