Grades Exchange API
Get a list of Grades Exchanges
LTI JWT Authorization header using the Bearer scheme
Specify the page number (defaults to 0)
Specify the page_size (defaults to the maximum page size)
Exchanges response
GET /v2/grades/exchanges HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_SECRET_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-11-16T06:39:14.648Z",
"updated_at": "2025-11-16T06:39:14.648Z"
}
},
"graded_after": "2025-11-16T06:39:14.648Z",
"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
LTI JWT Authorization header using the Bearer scheme
Exchanges response
Bad Request
POST /v2/grades/exchanges HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_SECRET_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-11-16T06:39:14.648Z",
"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).
LTI JWT Authorization header using the Bearer scheme
Exchanges' count
GET /v2/grades/exchanges/count HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Exchanges' count
1Get an Exchange
LTI JWT Authorization header using the Bearer scheme
id of the Exchange to find
Exchanges response
Exchange not found
GET /v2/grades/exchanges/{id} HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_SECRET_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-11-16T06:39:14.648Z",
"updated_at": "2025-11-16T06:39:14.648Z"
}
},
"graded_after": "2025-11-16T06:39:14.648Z",
"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
LTI JWT Authorization header using the Bearer scheme
id of the Exchange to list Errors
Specify the page number (defaults to 0)
Specify the page_size (defaults to the maximum page size)
Exchange Errors response
Exchange not found
GET /v2/grades/exchanges/{id}/errors HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"created_at": "2025-11-16T06:39:14.648Z",
"updated_at": "2025-11-16T06:39:14.648Z",
"code": "grades_api_internal_error",
"message": "text",
"detail": "text"
}
]
}Create a list of Grades Exchange Errors
LTI JWT Authorization header using the Bearer scheme
id of the Exchange to create Errors
Exchange Errors response
Bad Request
Exchange not found
POST /v2/grades/exchanges/{id}/errors HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 52
{
"code": "grades_api_internal_error",
"detail": "text"
}{
"data": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"created_at": "2025-11-16T06:39:14.648Z",
"updated_at": "2025-11-16T06:39:14.648Z",
"code": "grades_api_internal_error",
"message": "text",
"detail": "text"
}
}Create Grades data for an Exchange
LTI JWT Authorization header using the Bearer scheme
id of the Exchange to create Data
Exchanges response
Bad Request
Exchange not found
POST /v2/grades/exchanges/{id}/data HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2383
{
"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-11-16T06:39:14.648Z",
"updated_at": "2025-11-16T06:39:14.648Z"
},
"$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-11-16T06:39:14.648Z",
"available_at": "2025-11-16T06:39:14.648Z",
"$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-11-16T06:39:14.648Z",
"preview_url": "text",
"$ext": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"comments": [
{
"created_at": "2025-11-16T06:39:14.648Z",
"comment": "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-11-16T06:39:14.648Z",
"$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.
LTI JWT Authorization header using the Bearer scheme
id of the Exchange to get details
Exchange Details response
Exchange not found or the artifact is not available for it
GET /v2/grades/exchanges/{id}/artifacts/details HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
binaryGet 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.
LTI JWT Authorization header using the Bearer scheme
id of the Exchange to get details
Exchange Details response
Exchange not found or the artifact is not available for it
GET /v2/grades/exchanges/{id}/artifacts/consumerlogs HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
binaryReturns details about the entity designated as this Grades Application's consumer.
LTI JWT Authorization header using the Bearer scheme
Consumer Details response
Consumer is not configured
GET /v2/grades/consumer HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_SECRET_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.
LTI JWT Authorization header using the Bearer scheme
Data Sync ID to resolve
Resolved ID response
ID not found
GET /v2/grades/sections/{id}/resolve HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"consumerSourceId": "text"
}Create a Batch Grades Exchange Error
LTI JWT Authorization header using the Bearer scheme
id of the Batch Grades Exchange to create Error
Batch Exchange Error response
Bad Request
Exchange not found
POST /v2/grades/batch/{id}/error HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 28
{
"code": "integration_error"
}{
"data": null
}Create context data for a Batch Exchange
LTI JWT Authorization header using the Bearer scheme
id of the Batch Exchange to create Context Data
Batch Exchanges Context Data response
Bad Request
Batch Exchange not found
POST /v2/grades/batch/{id}/data HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 23
{
"course_ids": [
"text"
]
}{
"data": null
}LTI JWT Authorization header using the Bearer scheme
Specify the page number (defaults to 0)
Specify the page_size (defaults to the maximum page size)
Resolved ID response
ID not found
GET /v2/grades/schedules HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": [
null,
{
"type": "unspecified",
"last_executed_at": "2025-11-16T06:39:14.648Z",
"enabled": true,
"hour": 1,
"days": "text",
"metadata": {
"created": null,
"updated": null,
"scheduled": null
}
}
]
}Update a grades schedule. Only the enabled attribute may be updated.
LTI JWT Authorization header using the Bearer scheme
id of the Schedule to update
No content
PATCH /v2/grades/schedules/{id} HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 16
{
"enabled": true
}No content
No content
Enqueues a grade schedule for execution
LTI JWT Authorization header using the Bearer scheme
id of the schedule to be executed
No content
Conflict, when running the schedule is rejected
When running the schedule is rejected due to rate limiting
POST /v2/grades/schedules/{id}/run HTTP/1.1
Host: api.us2.kimonocloud.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2
{}No content
Last updated
Was this helpful?