Grade Passback Endpoint Configurations
The Instructure OneRoster grade passback (GPB) integration supports either the Standard or Modified GPB endpoint configurations. Because it more strictly follows the OneRoster endpoint configuration specifications, the Standard GPB configuration is recommended.
Additionally, to improve performance, include a Performance endpoint in your GPB configuration.
Learn more about OneRoster gradebook endpoint compliance.
Note: Instructure is a OneRoster Consumer. For OneRoster Consumer and Provider definitions, view the Introduction to OneRoster.
Standard Grade Passback
The Standard GPB integration endpoint includes the assignment sourcedId when syncing gradebook data from Canvas to your SIS.
Service Call | Endpoint | HTTP Verb | Required |
---|---|---|---|
getAllCategories | /categories | GET | ✓ |
getAllLineItems | /lineItems | GET | ✓ |
getResultsForClass | /classes/{class_id}/results | GET | ✓ |
getLineItemsForClass | /classes/{class_id}/lineItems | GET | ✓ |
getResultsForLineItemForClass | /classes/{class_id}/lineItems/{li_id}/results | GET | ✓ |
getResultsForStudentForClass | /classes/{class_id}/students/{student_id}/results | GET | ✓ |
putCategory | /categories/{id} | PUT | 𝗫 |
putLineItem | /lineItems/{id} | PUT | ✓ |
putResult | /results/{id} | PUT | ✓ |
Modified Grade Passback
The Modified GPB endpoint omits the assignment sourcedId when syncing gradebook data from Canvas to your SIS.
In the response to the PUT call for new records, the sourcedId must be returned by the OneRoster provider. The integration then stores this data for future use when performing API calls.
Service Call | Endpoint | HTTP Verb | Required |
---|---|---|---|
getAllCategories | /categories | GET | ✓ |
getAllLineItems | /lineItems | GET | ✓ |
getResultsForClass | /classes/{class_id}/results | GET | ✓ |
getLineItemsForClass | /classes/{class_id}/lineItems | GET | ✓ |
getResultsForLineItemForClass | /classes/{class_id}/lineItems/{li_id}/results | GET | ✓ |
getResultsForStudentForClass | /classes/{class_id}/students/{student_id}/results | GET | ✓ |
putCategory | /categories/{id} | PUT | 𝗫 |
putLineItem | /lineItems/{id} | PUT | ✓ |
putResult | /results/{id} | PUT | ✓ |
putCategory* | /categories* | PUT | 𝗫 |
putLineItem* | /lineItems* | PUT | ✓ |
putResult* | /results* | PUT | ✓ |
*sourcedId omitted from these API calls
Performance Grade Passback Endpoints
At least one of the following Performance Grade Passback integration endpoint methods should be implemented.
Service Call | Endpoint | HTTP Verb | Required |
---|---|---|---|
getFilteredClassCategory | /categories?filter=metadata.classId='{class_id}' | GET | 𝗫* |
getCategoriesForClass | /classes/{class_id}/categories | GET | ✓** |
*While not strictly required, implementing this filter prevents the need to pull and cache all categories.
**If you do not implement the category metadata.classid
, this implementation is required. This allows classes to associate with a category.