OneRoster Gradebook v1.2
OneRoster Gradebook provides read-only access to student grades and assignments based on the 1EdTech OneRoster v1.2 standard.
Base URL
https://api.<environment>.onedhub.io/<orgId>/ims/oneroster/gradebook/v1p2/
For more information about environments and URL structure see the environments section.
Open API Specifications
You can find the Open API specifications for the different environments at the following URLs:
https://api.<environment>.onedhub.io/<orgId>/ims/oneroster/gradebook/v1p2/swagger-ui/index.html
Examples:
https://api.staging.onedhub.io/vigilo.no/ims/oneroster/gradebook/v1p2/swagger-ui/index.htmlhttps://api.onedhub.io/vigilo.no/ims/oneroster/gradebook/v1p2/swagger-ui/index.html
Authentication
Authentication follows the same OAuth 2.0 client credentials flow as the rest of OnEdHub. See Authentication for details.
The following scopes grant access to the Gradebook API:
| Scope | Description |
|---|---|
roster.readonly | Full read access to rostering and gradebook data |
roster-core.readonly | Read access to core rostering and gradebook data |
Endpoints
Results (grades)
| Method | Endpoint | Description |
|---|---|---|
GET | /results | Returns all results |
GET | /results/{sourcedId} | Returns a single result by sourcedId |
Line items (assignments)
| Method | Endpoint | Description |
|---|---|---|
GET | /lineItems | Returns all line items |
GET | /lineItems/{sourcedId} | Returns a single line item by sourcedId |
Assessment line items (coming soon)
| Method | Endpoint | Description |
|---|---|---|
GET | /assessmentLineItems | Returns all assessment line items |
GET | /assessmentLineItems/{sourcedId} | Returns a single assessment line item by sourcedId |
Assessment results (coming soon)
| Method | Endpoint | Description |
|---|---|---|
GET | /assessmentResults | Returns all assessment results |
GET | /assessmentResults/{sourcedId} | Returns a single assessment result by sourcedId |
Query Parameters
All collection endpoints support the following query parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | integer | 100 | Maximum number of records to return |
offset | integer | 0 | Number of records to skip before returning results |
sort | string | — | Field name to sort by (e.g. dateLastModified) |
orderBy | string | asc | Sort direction: asc or desc |
filter | string | — | Filter expression (e.g. student.sourcedId='abc') |
fields | string | — | Comma-separated list of fields to include in the response |
Data Models
Result
A Result represents a student's grade for a specific line item (assignment).
| Field | Type | Description |
|---|---|---|
sourcedId | string | Unique identifier for the result |
status | string | active or tobedeleted |
dateLastModified | datetime | Last modification timestamp (ISO 8601) |
lineItem | GUIDRef | Reference to the associated line item |
student | GUIDRef | Reference to the student |
score | number | Numeric grade value (e.g. 4.0). null for non-numeric grades |
textScore | string | Grade as text — see textScore values |
scoreDate | date | Date the grade was recorded (YYYY-MM-DD) |
comment | string | Optional comment from the teacher |
textScore values
For numeric grades, textScore contains the number as a string (e.g. "4"). For non-numeric grades, the following values are used:
textScore | Meaning |
|---|---|
IV | Ikke vurdert — no basis for assessment |
F | Fritatt — exempt from assessment |
IM | Ikke møtt — student did not show up |
D | Deltatt — participated (used for vocational subjects) |
-- | No grade recorded |
{
"sourcedId": "result-001",
"status": "active",
"dateLastModified": "2026-02-01T10:00:00Z",
"lineItem": {
"sourcedId": "lineitem-001",
"type": "lineItem",
"href": "https://api.onedhub.io/vigilo.no/ims/oneroster/gradebook/v1p2/lineItems/lineitem-001"
},
"student": {
"sourcedId": "user-001",
"type": "user",
"href": "https://api.onedhub.io/vigilo.no/ims/oneroster/rostering/v1p2/users/user-001"
},
"score": 4.0,
"textScore": "4",
"scoreDate": "2026-01-28",
"comment": null
}LineItem
A LineItem represents a grading context for a subject group — one per term for halvårsvurdering, and one for standpunktkarakter or eksamenskarakter.
| Field | Type | Description |
|---|---|---|
sourcedId | string | Unique identifier for the line item |
status | string | active or tobedeleted |
dateLastModified | datetime | Last modification timestamp (ISO 8601) |
title | string | Subject variant name, or fagkode if no name is available |
description | string | Optional description |
class | GUIDRef | Reference to the subject group (class) |
school | GUIDRef | Reference to the school (org) |
gradingPeriod | GUIDRef | Reference to the academic session (term) |
scoreScale | GUIDRef | Optional reference to a score scale |
resultValueMin | number | Minimum numeric grade value |
resultValueMax | number | Maximum numeric grade value |
metadata | object | OnEdHub-specific fields — see LineItem metadata |
LineItem metadata
Norwegian-specific fields are exposed under metadata:
| Key | Type | Description |
|---|---|---|
onedhub.type | string | Grade type — see Grade types |
onedhub.subjectCode | string | Norwegian fagkode (e.g. NOR1211) |
onedhub.isWritten | boolean | Whether this is a written subject variant |
onedhub.isFirstLanguage | boolean | Whether this is the first-language variant |
onedhub.examForm | string | Exam form — S (written) or M (oral). Only set when onedhub.type is EK |
Grade types
The onedhub.type field identifies what kind of grade the line item represents:
| Value | Description |
|---|---|
T1 | Halvårsvurdering — half-year assessment for term 1 |
T2 | Halvårsvurdering — half-year assessment for term 2 |
STP | Standpunktkarakter — final standing grade |
EK | Eksamenskarakter — exam grade |
{
"sourcedId": "123:550e8400-e29b-41d4-a716-446655440000:a3bb189e-8bf9-3888-9912-ace4e6543002:10:NOR1211:2",
"status": "active",
"dateLastModified": "2026-01-15T08:30:00Z",
"title": "Norsk",
"class": {
"sourcedId": "123",
"type": "class",
"href": "https://api.onedhub.io/vigilo.no/ims/oneroster/rostering/v1p2/classes/123"
},
"school": {
"sourcedId": "550e8400-e29b-41d4-a716-446655440000",
"type": "org",
"href": "https://api.onedhub.io/vigilo.no/ims/oneroster/rostering/v1p2/orgs/550e8400-e29b-41d4-a716-446655440000"
},
"gradingPeriod": {
"sourcedId": "term-001",
"type": "academicSession",
"href": "https://api.onedhub.io/vigilo.no/ims/oneroster/rostering/v1p2/academicSessions/term-001"
},
"metadata": {
"onedhub.type": "T1",
"onedhub.subjectCode": "NOR1211",
"onedhub.isWritten": true,
"onedhub.isFirstLanguage": true,
"onedhub.examForm": null
}
}GUIDRef
A GUIDRef is a lightweight reference to another resource. It contains:
| Field | Type | Description |
|---|---|---|
sourcedId | string | The unique identifier of the referenced resource |
type | string | The resource type (e.g. user, class, lineItem) |
href | string | The full URL to retrieve the referenced resource |
Common Use Cases
Get all results for a student
curl -H "Authorization: Bearer <token>" \
"https://api.onedhub.io/<orgId>/ims/oneroster/gradebook/v1p2/results?filter=student.sourcedId%3D'<studentSourcedId>'"Get all line items for a class
curl -H "Authorization: Bearer <token>" \
"https://api.onedhub.io/<orgId>/ims/oneroster/gradebook/v1p2/lineItems?filter=class.sourcedId%3D'<classSourcedId>'"Paginate through results
# First page
curl -H "Authorization: Bearer <token>" \
"https://api.onedhub.io/<orgId>/ims/oneroster/gradebook/v1p2/results?limit=100&offset=0"
# Second page
curl -H "Authorization: Bearer <token>" \
"https://api.onedhub.io/<orgId>/ims/oneroster/gradebook/v1p2/results?limit=100&offset=100"