Skip to main content

UpdateCourseStatus

Used to change the course status to either started, not-completed, or completed for the current user. The optional statusChangeDate must be a valid date and cannot be in the future. If omitted, the current date and time is used. The results of this mutation can be affected by providing an authToken header to set a user for the operation.

UpdateCourseStatus(
slug: Slug!
status: String!
statusChangeDate: Date
): Boolean!

Directives

authAccess

This requires the current user to be in STUDENT role.

Arguments

UpdateCourseStatus.slug ● Slug! non-null scalar

The course slug (typically from the course URL or catalog).

UpdateCourseStatus.status ● String! non-null scalar

The course status to set. Valid values: started, not-completed, completed.

UpdateCourseStatus.statusChangeDate ● Date scalar

When the status change occurred (ISO 8601). If omitted, the current date and time is used.

Type

Boolean scalar

The Boolean scalar type represents true or false.

Examples

Run in Postman

Query:

mutation UpdateCourseStatus(
$slug: Slug!,
$status: String!,
$statusChangeDate: Date
) {
UpdateCourseStatus(
slug: $slug,
status: $status,
statusChangeDate: $statusChangeDate
)
}

Variables:

{
"slug": "course-slug-goes-here",
"status": "completed",
"statusChangeDate": "2026-02-20T09:00:00Z"
}

Response:

{
"data": {
"UpdateCourseStatus": true
}
}

cURL

curl --location 'https://YOUR-SITE.thoughtindustries.com/helium?apiKey=YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'authToken: LEARNER_AUTH_TOKEN' \
--data '{"query":"mutation UpdateCourseStatus($slug: Slug!, $status: String!, $statusChangeDate: Date) { UpdateCourseStatus(slug: $slug, status: $status, statusChangeDate: $statusChangeDate) }","variables":{"slug":"course-slug-goes-here","status":"completed","statusChangeDate":"2026-02-20T09:00:00Z"}}'