Google Classroom supports roster import and gradebook sync for a number of OneRoster-compliant Student Information Systems (SIS). Google partners with SIS platforms that meet Google-specified OneRoster requirements.

Figure 1. When Student Information Systems (SIS) partner with Classroom, administrators can choose the SIS in the drop-down.
SIS partner onboarding journey
The following is a quick overview of the SIS partner onboarding journey:
Express interest: If you are interested in partnering with Classroom, fill out the interest form.
Explore and run the conformance tests: To understand if your SIS is ready to integrate with Classroom, you can review the conformance tests to familiarize yourself with Google's requirements. You have the option of running the conformance tests before expressing interest to the Google Classroom team to determine how closely your product meets Google's requirements.
Connect with the Google Classroom team: The Classroom team will reach out following your interest form submission if there is an opportunity to partner.
Share your test results & build the end-to-end integration: Once the Classroom team has contacted you, share your conformance test results. Your team will work with Google to validate and complete the integration.
Conformance tests
The Google-defined conformance tests exist to provide SIS partners a way to determine whether their product meets Google's OneRoster consumption requirements and to minimize errors that users might experience when utilizing SIS integrations in Classroom. The tests are published on GitHub.
Access and run the tests
In order to run the tests, you need the following:
- Token URL to retrieve OAuth 2.0 credentials
- One Roster URL ending in
/ims/oneroster/v1p2 - Client ID
- Client secret
- A teacher email address
You can run the tests by using Google Colab or Jupyter notebook. Both Colab and Jupyter notebook let you run all tests at once. This helps you generate the test results to share with the Google Classroom team.
Requirements and expected behavior
Read through the following pointers on the tests. In GitHub, each test has a title that is referenced in the table. These pointers can help clarify questions, but it's not a comprehensive list of the tests. Ensure you have run all the tests provided in GitHub to ensure conformance.
| Test | Pointers |
|---|---|
| Teachers: GetAllTeachers | The GET /teachers endpoint is called with a limit query parameter. In subsequent tests, this parameter is used to ensure that your product can support a page size of 10,000. |
| Teachers: GetAllTeachers with email filter | The GET /teachers endpoint is called with a filter query parameter used to filter based on a teacher email address. This will use the teacher email address you provided in the Credentials section of the tests. |
| Classes: GetClassesForTeacher | The /teachers/{teacher_sourced_id}/classes endpoint is called with a filter query parameter used to filter based on active classes. |
| Students: GetStudentsForClass | The GET /classes/{class_sourced_id}/students endpoint is called. The student email must be returned in the response. |
| GetGradingPeriodsForTerm | Grading periods support is tested using the term_sourced_id. This term_sourced_id is used to retrieve the grading periods in the term by calling the GET /terms/{term_sourced_id}/gradingPeriods endpoint. |
| LineItem: Create | Grading periods aren't required when calling PUT /lineItems/{line_item_sourced_id}. |
| LineItem: Edit | The API call shouldn't return an error if a long assignment title length is included. The test includes an assignment title length of 100+ characters. |
| Result: Edit | It should be possible to set the score to a value greater than the resultValueMax to represent extra credit. |
| Result: Delete | The DELETE /results/{result_sourced_id} endpoint is required. |
| LineItem (Optional / Cleanup): Delete and Get | The DELETE /lineItems/{line_item_sourced_id} endpoint is not required. It is optional and used for data clean-up. The subsequent GET /classes/{class_sourced_id}/lineItems endpoint is also optional, and tests that the line item was deleted. |
Share the test results with the Google Classroom team
After you run the tests, a full report with the results of each test is generated. The results are used to determine whether your product meets Google's OneRoster 1.2 consumption requirements. Download or take a screenshot of the generated report to share with your contacts on the Google Classroom team.
Obtain a developer demo domain
Once your conformance test results are reviewed by the Google Classroom team, a developer demo domain lets you validate your end-to-end integration. Keep in mind that successfully passing the conformance tests doesn't guarantee partnership or integration approval.
A developer demo domain is a live, test Google Classroom environment to help you validate that your integration is working as you expect. Complete the steps to get a developer demo domain and request a demo domain upgrade. The upgrade provisions your domain with 10 Google Workspace for Education Plus licenses. These licenses need to be assigned to test users in your developer domain so they can test the SIS integration features in Classroom.
Frequently asked questions
1. What data model does Classroom expect from the SIS?
Classroom adheres to the OneRoster 1.2 specification. If your SIS uses a different data structure, you might encounter unexpected behavior. For example, if your system supports a nested relationship between grading periods and grading categories, this falls outside the OneRoster 1.2 specification, and you should test your integration thoroughly to ensure proper compatibility.
2. Which grades and assignment statuses are exported to the SIS?
Only returned grades or submissions marked as "missing" or "excused" are exported to the SIS. Draft grades aren't exported.
3. What happens to the line item in the SIS if an assignment is deleted in Classroom?
Deleting an assignment in Classroom does not delete the corresponding line item in the SIS. This prevents accidental data loss and unintended cascade deletions.