LIST
Resource: /api/v2/enrollments
HTTPS Request Method: GET
Description: Get the list of all enrollments that match the specified parameters. If no optional parameters are specified, the full list of enrollments associated with the account is returned.
Enrollment list results are limited to 1,000 records and must be paginated.
Required Parameters:
- api_key
- page - (integer). The page number you want to request. Every page is 1,000 records long at most, and results are returned in id order. Page 1 is assumed if no page number is provided, but unpaginated requests are subject to API rate limitations.
Optional Parameters:
- enrollment[id] - (integer)
- enrollment[code] - (string)
- enrollment[expires_on] - (datetime)
- enrollment[enrolled_on] - (datetime)
- enrollment[due_on] - (date)
- enrollment[completed_on] - (datetime)
- enrollment[user_id] - (integer)
- enrollment[course_id] - (integer)
- enrollment[course_session_id] - (integer)
- enrollment[status] - (string)
- enrollment[started_on] - (datetime)
- enrollment[updated_on] - (datetime)
- enrollment[accepted_invite] - (boolean)
- course[code] - (string)
- ... (see all the optional attributes of the Courses (Activities) API List endpoint)
- session[code] - (string)
- ... (see all the optional attributes of the Sessions (Events) API List endpoint)
- user[code] - (string)
- ... (see all the optional attributes of the Users API List endpoint)
- with_metadata - (string). When "1" each returned enrollment includes a "metadata" entry listing the record metadata attributes
- enrollment[relationship_type]
Dates and datetimes should be in YYYY-MM-DD or YYYY-MM-DD HH:MM:SS format, and can be ordered as ranges if separated by a comma.
Example Request:
curl -X GET -d '{"api_key": "123456", "enrollment": {"status": "in-progress"}, "session": {"started_on": "2010-04-19 00:00:00,2015-04-19 23:59:59"}, "course": {"code": "abc123"}}' -H "Content-type: application/json" -H "Accept: application/json" https://YOURSUBDOMAIN.exceedlms.com/api/v2/enrollments
Example Response:
[
{
"accepted_invite": false,
"account_id": 2,
"attachments_count": null,
"auto_enrollment_id": null,
"code": null,
"completed_activities_count": null,
"completed_on": null,
"course": {"hide_until": 5},
"course_id": 107,
"course_session_id": 15,
"created_by": "demo demo",
"due_on": null,
"enrolled_on": "2015-03-17T18:28:00-05:00",
"expires_on": null,
"graded_by_instructor_id": null,
"id": 1055,
"is_initial_enrollment": false,
"pre_assessment_score": null,
"pre_assessment_status": null,
"progress": 0.0,
"relationship_type": "recommended",
"reminder_count": 0,
"score": null,
"started_on": "2010-04-19T18:28:13-05:00",
"status": "in-progress",
"time": 0,
"updated_by": "demo demo",
"updated_on": "2015-03-17T18:28:38-05:00",
"user_code": "zinzin",
"user_id": 2
}
]
CREATE
Resource: /api/v2/enrollments
HTTPS Request Method: POST
Description: Create an enrollment based on the associated params. If you are unable to create an enrollment (for instance if the course or User referred to by the enrollment doesn't exist), an HTTP 422 Unprocessable Entity response is returned. The HTTP response body will contain a list of error reasons in JSON or XML format. For more information concerning types of values accepted, see https://
Required Parameters:
- api_key
- enrollment[course_id] or enrollment[course_code]
- enrollment[user_id] or enrollment[user_code]
Optional Parameters:
- enrollment[course_session_id] - must be the id of an existing session.
- enrollment[course_session_code] - must be the code of an existing session. If this parameter is set, enrollment[course_session_id] is ignored.
- enrollment[completed_on]
- enrollment[due_on]
- enrollment[enrolled_on]
- enrollment[expires_on]
- enrollment[progress]
- enrollment[reminder_count]
- enrollment[score]
- enrollment[started_on]
- enrollment[status]
- enrollment[time]
- enrollment[created_by]
- enrollment[relationship_type]
- enrollment[metadata_attributes][relationship_reason]
Example Request:
curl -X POST -d '{"api_key": "123456", "enrollment": {"course_id": 8, "user_id": 3}}' -H "Content-type: application/json" -H "Accept: application/json" http://YOURSUBDOMAIN.exceedlms.com/api/v2/enrollments
Example Response:
<?xml version="1.0" encoding="UTF-8"?>
<enrollment>
<account-id type="integer">2</account-id>
<attachments-count type="integer" nil="true"></attachments-count>
<auto-enrollment-id type="integer" nil="true"></auto-enrollment-id>
<code nil="true"></code>
<completed-activities-count type="integer" nil="true"></completed-activities-count>
<completed-on type="datetime" nil="true"></completed-on>
<course type="CourseAicc">
<hide-until type="integer">5</hide-until>
</course>
<course-id type="integer">220</course-id>
<course-session-id type="integer" nil="true"></course-session-id>
<due-on type="datetime" nil="true"></due-on>
<enrolled-on type="datetime" nil="true"></enrolled-on>
<expires-on type="datetime" nil="true"></expires-on>
<id type="integer">4833854</id>
<is-initial-enrollment type="boolean">false</is-initial-enrollment>
<progress type="float">0.0</progress>
<relationship-type>recommended
<reminder-count type="integer">0</reminder-count>
<score type="integer" nil="true"></score>
<started-on type="datetime" nil="true"></started-on>
<status>in-progress</status>
<time type="integer">0</time>
<updated-by type="integer" nil="true"></updated-by>
<updated-on type="datetime">2011-09-15T15:23:00Z</updated-on>
<user-id type="integer">413340</user-id>
</relationship-type></enrollment>
READ
Resource: /api/v2/enrollments/{id}
HTTPS Request Method: GET
Description: Lookup an enrollment based on the id.
Required Parameters:
- api_key
Optional Parameters:
- enrollment[code] - lookup the enrollment using the code. When this param is used, the id parameter is ignored.
- with_metadata - (string). When "1", each returned enrollment includes a "metadata" entry listing the record metadata attributes.
Example Request:
curl -X GET -H "Content-type: application/json" -H "Accept: application/json" https://YOURSUBDOMAIN.exceedlms.com/api/v2/enrollments/322?api_key=123456
Example Response:
<?xml version="1.0" encoding="UTF-8"?>
<enrollment>
<account-id type="integer">2</account-id>
<auto-enrollment-id type="integer" nil="true"></auto-enrollment-id>
<code nil="true"></code>
<completed-on type="datetime">2008-06-23T07:24:22Z</completed-on>
<course type="CourseAicc">
<hide-until type="integer">5</hide-until>
</course>
<course-id type="integer">20</course-id>
<course-session-id type="integer" nil="true"></course-session-id>
<due-on type="datetime" nil="true"></due-on>
<enrolled-on type="datetime">2008-05-22T08:22:16Z</enrolled-on>
<expires-on type="datetime" nil="true"></expires-on>
<id type="integer">21</id>
<progress type="float">0.0</progress>
<relationship-type>recommended
<reminder-count type="integer">0</reminder-count>
<score type="integer">100</score>
<started-on type="datetime" nil="true"></started-on>
<status>passed</status>
<time type="integer">34</time>
<updated-by type="integer" nil="true"></updated-by>
<updated-on type="datetime">2008-06-23T03:24:22Z</updated-on>
<user-id type="integer">1</user-id>
</relationship-type></enrollment>
UPDATE
Resource: /api/v2/enrollments/{id}
HTTPS Request Method: PUT
Description: Update an enrollment based on the enrollment id.
Required Parameters:
- api_key
Optional Parameters:
- enrollment[code] - the enrollment code cannot be updated. When this parameter is passed, the LMS looks up the enrollment using the code and ignores the id parameter.
- enrollment[course_id]
- enrollment[course_code] - when this parameter is set, this will update the enrollment[course_id] value with the id of the course having the code enrollment[course_code].
- enrollment[user_id]
- enrollment[user_code] - when this parameter is set, it will update the enrollment[user_id] value with the id of the user having the code enrollment[user_code].
- enrollment[course_session_id]
- enrollment[course_session_code] - when this parameter is set, this will update the enrollment[course_session_id] value with the id of the session having the code enrollment[course_session_code].
- enrollment[completed_on]
- enrollment[due_on]
- enrollment[enrolled_on]
- enrollment[expires_on]
- enrollment[progress]
- enrollment[reminder_count]
- enrollment[score]
- enrollment[started_on]
- enrollment[status]
- enrollment[time]
- enrollment[created_by]
- enrollment[relationship_type]
- enrollment[metadata_attributes][relationship_reason]
Example Request:
curl -i -X PUT -d '{"enrollment": {"score": 60}}' -H "Content-type: application/json" -H "Accept: application/json" https://YOURSUBDOMAIN.exceedlms.com/api/v2/enrollments/12?api_key=123456
Response:
- Successfully updating this returns a 200 HTTP response code with an empty body.
DELETE
Resource: /api/v2/enrollments/{id}
HTTP Request Method: DELETE
Description: Delete an enrollment based on the enrollment id.
Required Parameters:
- api_key
Optional Parameters:
- enrollment[code] - when this parameter is passed the LMS looks up the enrollment using the code, and ignores the id parameter.
Example Request
curl -i -X DELETE -H "Content-type: application/json" -H "Accept: application/json" https://YOURSUBDOMAIN.exceedlms.com/api/v2/enrollments/12?api_key=123456
Response:
- On successful deletion, it returns a 200 HTTP response code with an empty body.
LIST DELETIONS
Resource: /api/v2/enrollments/deletions
HTTP Request Method: GET
Description: List all of the deleted enrollments
Required Parameters:
- api_key
Optional Parameters:
- page - (integer). The page number you want to request. Every page is 1,000 records long at most, and results are returned in id order. Page 1 is assumed if no page number is provided, but unpaginated requests are subject to API rate limitations.
- deleted_at - (date) when this parameter is passed the LMS returns all deletions after the specified date.
Dates and datetimes should be in YYYY-MM-DD
Example Request
curl -i -X GET -H "Content-type: application/json" -H "Accept: application/json" https://YOURSUBDOMAIN.exceedlms.com/api/v2/enrollments/deletions?api_key=123456
Example Response:
[
{
"id": 1000000001,
"account_id": 100001,
"code": '',
"deleted_at": "2019-05-07T10:54:45.669-04:00"
},
{
"id": 2000000001,
"account_id": 100001,
"code": '123',
"deleted_at": "2019-05-07T11:10:04.111-04:00"
}
]