Author - Enrollments API

Interfaces

Object Synopses

EnrollmentRequest

  • end_at DateTime

    Due date for this enrollment

  • expires_at DateTime

    Expiration date for this enrollment. May only be applied to ‘completed’ enrollments.

  • completed_at DateTime

    Completion date for this enrollment. Sets state to ‘complete’ if not already.

  • user_id Integer

    User to enroll. Either user_id or group_id must be included, but not both.

  • group_id Integer

    Group to enroll. Either user_id or group_id must be included, but not both.

  • score Integer

    Score (out of 100) for completed enrollment.

  • state String

    Current state of enrollment. One of ‘created’, ‘active’, ‘complete’, or ‘failed’.

  • required Boolean

    Is this enrollment required.

EnrollmentResponse

  • id Integer

    Enrollment id.

  • course_template Integer

    Course template id.

  • end_at DateTime

    Due date for this enrollment

  • expires_at DateTime

    Expiration date for this enrollment. Only applies to ‘completed’ enrollments.

  • completed_at DateTime

    Completion date for this enrollment. Only applies to ‘completed’ enrollments.

  • updated_at DateTime

    Last updated date for this enrollment.

  • progress Float

    Progress of course finished.

  • can_be_removed Boolean

    Can this enrollment be removed.

  • can_be_made_optional Boolean

    Can this enrollment be made optional.

  • active Boolean

    Whether this enrollment is active or has been replaced by another enrollment.

  • required Boolean

    Is this enrollment required or did the learner optionally enroll themselves.

  • is_permanently_failed Boolean

    Is this enrollment permanently failed.

  • is_archived Boolean

    Has this enrollment been archived.

  • score Integer

    Score (out of 100) for completed enrollment.

  • state String

    Current state of enrollment. One of ‘created’, ‘active’, ‘complete’, or ‘failed’.

  • links Hash

    Provides links to additional detail in response object

  • allow_re_enroll Boolean

    Can the learner be re-enrolled with this enrollment.

List Enrollments

GET /api/author/course_templates/:course_template_id/enrollments

This endpoint will fetch all enrollments for the desired course.

Response Codes

  • 200 OK
  • 304 Not Modified

Parameters

  • id Integer Required

    Path parameter. Course id

  • sort String [ name, score, progress, due_date ]

    Query parameter. Sorts return values in ascending order. Prepending a - sorts return values in descending order.

  • search String

    Finds users with matching values in first name, last name, uid, or email.

  • user_id Integer

    Query parameter. Filters list to only include enrollments belonging to user.

  • updated_after DateTime

    Query parameter. Filters list to only include enrollments updated after the given RFC 3339 compliant timestamp.

  • created_after DateTime

    Query parameter. Filters list to only include enrollments created after the given RFC 3339 compliant timestamp.

  • deleted_after DateTime

    Query parameter. Filters list to only include enrollments deleted after the given RFC 3339 compliant timestamp.

  • updated_before DateTime

    Query parameter. Filters list to only include enrollments updated before the given RFC 3339 compliant timestamp.

  • created_before DateTime

    Query parameter. Filters list to only include enrollments created before the given RFC 3339 compliant timestamp.

  • deleted_before DateTime

    Query parameter. Filters list to only include enrollments deleted before the given RFC 3339 compliant timestamp.

  • only_deleted Boolean

    Filters list to only include deleted enrollments.

  • with_deleted Boolean

    Filters list to also include deleted enrollments.

Example Response

{
  "meta": {},
  "linked":
  {
    "course_templates": [
      {
        "id": "1"
      }
    ],
    "learners": [
      {
        "id": "1",
        "name": "Leia Organa",
        "avatar_url": "http://www.alderaan-gov.com/royal-family/hrh_leia.png",
        "deleted": false
      }
    ]
  },
  "enrollments": [
    {
      "id": "4",
      "course_template": "1",
      "end_at": "2015-07-07T23:59:59.000-06:00",
      "expires_at": "2015-09-07T23:59:59.000-06:00",
      "updated_at": "2015-06-22T11:05:00.000-06:00",
      "progress": 0,
      "can_be_removed": true,
      "completed_at": null,
      "score": 0,
      "state": "created",
      "links": {
        "learner": {
          "type": "learners",
          "id": "6"
        }
      }
    }
  ]
}

Create an enrollment

POST /api/author/course_templates/:course_template_id/enrollments

Either the group_id or the user_id must be provided, but not both.

Response Codes

  • 204 No Content

Parameters

  • course_template_id Integer Required

    Path parameter. Course template id.

  • enrollments EnrollmentRequest[] Required

    Body parameter. An array of EnrollmentRequest.

Example Request

{
  "enrollments": [
    "{API::EnrollmentRequest}"
  ]
}
curl \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{"enrollments":["{API::EnrollmentRequest}"]}' \
  http://<bridge>/api/author/course_templates/:course_template_id/enrollments
    

Update an enrollment

PATCH /api/author/enrollments/:id
PUT /api/author/enrollments/:id

Response Codes

  • 200 OK
  • 400 Bad Request When course is archived

Parameters

  • id Integer Required

    Path parameter, not required in request body. Enrollment id.

  • enrollments EnrollmentRequest[] Required

    Body parameter. An array of EnrollmentRequest to update.

Example Request

{
  "enrollments": [
    "{API::EnrollmentRequest}"
  ]
}
curl \
  -X PATCH \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{"enrollments":["{API::EnrollmentRequest}"]}' \
  http://<bridge>/api/author/enrollments/:id
    

Example Response

{
  "meta": {},
  "linked":
  {
    "course_templates":
    [
      {
        "id":"1"
      }
    ],
    "learners": []
  },
  "enrollments":
  [
    "{API::EnrollmentResponse}"
  ]
}

Delete an enrollment

DELETE /api/author/enrollments/:id

Response Codes

  • 204 No Content when deletion has completed
  • 400 Bad Request When course is archived
  • 404 Not Found when enrollment or its user are not in system
  • 403 Forbidden when current user is not authorized to unenroll user

Parameters

  • id Integer Required

    Path parameter. Enrollment id.

  • force_unenroll Boolean

    Body Parameter. Removes enrollment if enrollment is started or optional when true.

Update due date for an enrollment

POST /api/author/enrollments/:id/due_date

Response Codes

  • 200 OK
  • 400 Bad Request When course is archived

Parameters

  • id Integer Required

    Path parameter, not required in request body. Enrollment id.

  • enrollments EnrollmentRequest[] Required

    Body parameter. An array of EnrollmentRequest to update.

Example Request

{
  "enrollments": [
    "{API::EnrollmentRequest}"
  ]
}
curl \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{"enrollments":["{API::EnrollmentRequest}"]}' \
  http://<bridge>/api/author/enrollments/:id/due_date
    

Example Response

{
  "meta": {},
  "linked":
  {
    "course_templates":
    [
      {
        "id":"1"
      }
    ],
    "learners": []
  },
  "enrollments":
  [
    "{API::EnrollmentResponse}"
  ]
}