Grades Exchange API
Get a list of Grades Exchanges
Specify the page number (defaults to 0)
Specify the page_size (defaults to the maximum page size)
GET /v2/grades/exchanges HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
Exchanges response
{
"data": [
{
"query": {
"type": "assignment_scores",
"conditions": [
{
"scope": "course",
"scope_by": "id",
"scope_id": {
"name": "text",
"$sys": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"source_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"app_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"created_at": "2025-07-04T21:46:15.529Z",
"updated_at": "2025-07-04T21:46:15.529Z"
}
},
"graded_after": "2025-07-04T21:46:15.529Z",
"assignment_ids": [
"text"
],
"summary_type": "final"
}
]
},
"metadata": {},
"state": "created",
"max_data_content_length": 1,
"error_count": 1,
"course_app_id": "text",
"batch_exchange_id": "text"
}
]
}
Create a Grades Exchange
POST /v2/grades/exchanges HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 364
{
"query": {
"type": "assignment_scores",
"conditions": [
{
"scope": "course",
"scope_by": "id",
"scope_id": {
"name": "text",
"$sys": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"source_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"app_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
},
"graded_after": "2025-07-04T21:46:15.529Z",
"assignment_ids": [
"text"
],
"summary_type": "final"
}
]
},
"metadata": {}
}
{
"data": null
}
Get the total count of Grades Exchanges (in scope of the actor credentials and the provided query parameters). Useful for determining the maximum page number of listExchanges (diving the returned number by the desired page size).
GET /v2/grades/exchanges/count HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
Exchanges' count
1
Get an Exchange
id of the Exchange to find
GET /v2/grades/exchanges/{id} HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"data": {
"query": {
"type": "assignment_scores",
"conditions": [
{
"scope": "course",
"scope_by": "id",
"scope_id": {
"name": "text",
"$sys": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"source_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"app_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"created_at": "2025-07-04T21:46:15.529Z",
"updated_at": "2025-07-04T21:46:15.529Z"
}
},
"graded_after": "2025-07-04T21:46:15.529Z",
"assignment_ids": [
"text"
],
"summary_type": "final"
}
]
},
"metadata": {},
"state": "created",
"max_data_content_length": 1,
"error_count": 1,
"course_app_id": "text",
"batch_exchange_id": "text"
}
}
Get a list of Grades Exchange Errors
id of the Exchange to list Errors
Specify the page number (defaults to 0)
Specify the page_size (defaults to the maximum page size)
GET /v2/grades/exchanges/{id}/errors HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"created_at": "2025-07-04T21:46:15.529Z",
"updated_at": "2025-07-04T21:46:15.529Z",
"code": "query_type_not_supported",
"message": "text",
"details": "text"
}
]
}
Create a list of Grades Exchange Errors
id of the Exchange to create Errors
POST /v2/grades/exchanges/{id}/errors HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 52
{
"code": "query_type_not_supported",
"details": "text"
}
{
"data": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"created_at": "2025-07-04T21:46:15.529Z",
"updated_at": "2025-07-04T21:46:15.529Z",
"code": "query_type_not_supported",
"message": "text",
"details": "text"
}
}
Create Grades data for an Exchange
id of the Exchange to create Data
POST /v2/grades/exchanges/{id}/data HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2331
{
"assignments": [
{
"error_code": "unspecified",
"sync_status": "unspecified",
"$sys": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"source_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"app_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"created_at": "2025-07-04T21:46:15.529Z",
"updated_at": "2025-07-04T21:46:15.529Z"
},
"$section": {
"name": "text",
"$sys": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"source_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"app_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
},
"$category": {
"name": "text",
"$sys": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"source_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"app_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
},
"$term": {
"name": "text",
"$sys": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"source_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"app_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
},
"name": "text",
"description": "text",
"points_possible": 1,
"due_at": "2025-07-04T21:46:15.529Z",
"available_at": "2025-07-04T21:46:15.529Z",
"$ext": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"scores": [
{
"error_code": "unspecified",
"sync_status": "unspecified",
"$person": {
"name": "text",
"$sys": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"source_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"app_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
},
"$grader": {
"name": "text",
"$sys": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"source_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"app_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
},
"score": 1,
"grade": "text",
"late": true,
"missing": true,
"excused": true,
"submitted_at": "2025-07-04T21:46:15.529Z",
"preview_url": "text",
"$ext": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
]
}
],
"summaries": [
{
"error_code": "unspecified",
"sync_status": "unspecified",
"$section": {
"name": "text",
"$sys": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"source_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"app_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
},
"$person": {
"name": "text",
"$sys": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"source_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"app_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
},
"$grader": {
"name": "text",
"$sys": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"source_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"app_id": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
},
"summary_type": "final",
"score_type": "raw",
"score": 1,
"grade": "text",
"last_activity": "2025-07-04T21:46:15.529Z",
"comments": [
"text"
],
"$ext": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
],
"final": true
}
{
"data": null
}
Get the details artifact for a completed Exchange. The response is a .json.gz file but it is not decompressed by the client implicitly. If no details were produced (early failure), a 404 response will be returned.
id of the Exchange to get details
GET /v2/grades/exchanges/{id}/artifacts/details HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
binary
Get the consumer logs artifact for a completed Exchange. The response is a .json.gz file but it is not decompressed by the client implicitly. If no logs were produced (nothing was sent to SIS), a 404 response will be returned.
id of the Exchange to get details
GET /v2/grades/exchanges/{id}/artifacts/consumerlogs HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
binary
Returns details about the entity designated as this Grades Application's consumer.
GET /v2/grades/consumer HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"id": "text",
"connector_type": "text",
"supported_exchange_query_type": "assignment_scores",
"summary_score_type": "final"
}
Resolves the provided Data Sync ID to an ID in the consumer's id space.
Data Sync ID to resolve
GET /v2/grades/sections/{id}/resolve HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"consumerSourceId": "text"
}
Create a Batch Grades Exchange Error
id of the Batch Grades Exchange to create Error
POST /v2/grades/batch/{id}/error HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 28
{
"code": "integration_error"
}
{
"data": null
}
Create context data for a Batch Exchange
id of the Batch Exchange to create Context Data
POST /v2/grades/batch/{id}/data HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 23
{
"course_ids": [
"text"
]
}
{
"data": null
}
Specify the page number (defaults to 0)
Specify the page_size (defaults to the maximum page size)
GET /v2/grades/schedules HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"data": [
null,
{
"type": "unspecified",
"last_executed_at": "2025-07-04T21:46:15.529Z",
"enabled": true,
"hour": 1,
"days": "text",
"metadata": {
"created": null,
"updated": null,
"scheduled": null
}
}
]
}
Update a grades schedule. Only the enabled
attribute may be updated.
id of the Schedule to update
PATCH /v2/grades/schedules/{id} HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 16
{
"enabled": true
}
No content
No content
Enqueues a grade schedule for execution
id of the schedule to be executed
POST /v2/grades/schedules/{id}/run HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2
{}
No content
Last updated
Was this helpful?