Reach 360: Import Course Completion API

Article Last Updated

This article applies to:

What This API Endpoint Does

The Import Course Completion API provides different information, depending on if it's an Articulate 360 course or an imported third-party content course. For all courses, Admins will see when users were enrolled in the course. The course will be added to learner's libraries and marked as completed. When launched, it starts from the beginning. Imported courses don't include question-level reporting data.

Third-party courses won't show a quiz score when imported. This could result in a course being marked as complete with a failing quiz score, even if the quiz is a completion requirement. Taking the quiz after the completion is imported will record a new quiz score.

When Articulate 360 course completions are imported, if there’s a quiz requirement, it will be set to a 100% score that will be reflected in the learner's library. Learners see the quiz results page when viewing the quiz and, if allowed, can take the quiz again. Their attempt is recorded in the Activity report with a new quiz score but the status of the course and the 100% quiz score remains.


  • POST /courses/{courseId}/users/{userId}/completions - import completion data for a single course/user pair into Rise.

Import Completion Data

POST /courses/{courseId}/users/{userId}/completions


  • The completion record is associated with the current published version of the course
  • The date parameters are reflected in the Duration columns of various reports (i.e., the duration for an imported completion is calculated as the difference between startedAt and completedAt). Report views within Reach 360 can take up to 5 minutes to refresh.
  • Multiple calls to this endpoint with the same courseId and userId will override the date parameters provided in previous calls (i.e., this endpoint will only create a single completion record for a given course and user pair regardless of how many times it is called)
  • The user does not have to be enrolled in the course prior to the request. In that case, a new learner enrollment is created. If they are enrolled, however, the existing enrollment is used.

Request Parameters (JSON)

  • completedAt (ISO 8601 date, required) - when the user completed the course
  • startedAt (ISO 8601 date, required) - when the user started the course

Success response

202 "Accepted"

Endpoint-specific error codes:

  • course_not_found
  • course_not_published
  • user_not_found