My CPD Records (Continuous Professional Development) is a tool that enables managers to track and manage the professional development activities of their direct reports. It allows learners to view and log activities in CPD records, record hours, and monitor overall progress towards their goals.
Attributes¶
Records¶
- RECORDSTATE_T¶
We categorize the published state of CPD records into types, and use the term RECORDSTATE_T to stand in for an appropriate integer value.
Record State
Value
Published
1
Draft
2
- Cpd.Record¶
When you use actions that retrieve detailed CPD record information, the service provides a block like this:
{ "RecordId": <number:D2LID>, "Name": <string>, "UserId": <number:D2LID>, "Category": { <composite:Category> }, "Method": { <composite:Method> }, "IsStructured": <boolean>, "IssuedId": <number:D2LID>|null, "DateCompleted": <string:UtcDateTime>, "Grade": <number:decimal>|null, "GradeObjectId": <number:D2LID>|null, "CreditMinutes": <number>, "Attachments": null|{ "FileSetId": <number:D2LID>, "Files": [ // Array of FileInfo blocks { "Id": <number:D2LID>, "Name": <string>, "Size": <number>, "Href": <string> }, { <composite:FileInfo> }, ... ] }, "Answers": [ // Array of Answer blocks { "QuestionId": <number:D2LID>, "Text": <string>, "AnswerId": <number:D2LID> }, { <composite:Answer> }, ... ], "RecordStateId": <number:RECORDSTATE_T> }
- Cpd.RecordSummary¶
When you use actions that retrieve brief CPD record information, the service returns a block like this:
{ "RecordId": <number:D2LID>, "RecordName": <string>, "CategoryName": <string>, "MethodName": <string>, "IsStructured": <boolean>, "RecordStateId": <number:RECORDSTATE_T>, "CreditMinutes": <number>, "DateCompleted": <string:UtcDateTime> }
- Cpd.RecordUpdate¶
When you use actions that update CPD record information, you should provide a block like this:
{ "Name": <string>, "CategoryId": <number:D2LID>, "IsStructured": <boolean>, "MethodId": <number:D2LID>, "CreditMinutes": <number>, "Answers": [ // Array of AnswerUpdate blocks { "QuestionId": <number:D2LID>, "Text": <string> }, { <composite:AnswerUpdate> }, ... ], "DateCompleted": <string:UtcDateTime>, "RecordStateId": <number:RECORDSTATE_T>|null }
Target Progress¶
- Cpd.TargetProgress¶
When you use actions that retrieve user target progress information, the service returns a block like this:
{ "StartDate": <string:UtcDateTime>|null, "EndDate": <string:UtcDateTime>|null, "Structured": { "Numerator": <number>, "Denominator": <number> }, "Unstructured": { "Numerator": <number>, "Denominator": <number> }, "CategoryProgress": [ // Array of CategoryProgress blocks { "Category": <composite:Category>, "Structured": { "Numerator": <number>, "Denominator": <number> }, "Unstructured": { "Numerator": <number>, "Denominator": <number> }, }, { <composite:CategoryProgress> }, ... ] }
Record Fields¶
- Cpd.Category¶
When you use actions that retrieve CPD record category information, the service returns a block like this:
{ "Id": <number:D2LID>, "Name": <string>, "SortOrder": <number>, "InUse": <boolean> }
- Cpd.Method¶
When you use actions that retrieve CPD record method information, the service returns a block like this:
{ "Id": <number:D2LID>, "Name": <string>, "SortOrder": <number>, "InUse": <boolean> }
- Cpd.Question¶
When you use actions that retrieve CPD record question information, the service returns a block like this:
{ "Id": <number:D2LID>, "QuestionText": <string>, "SortOrder": <number>, "InUse": <boolean> }
Actions¶
Records¶
- GET /d2l/api/le/(version)/cpd/record/(recordId)¶
Retrieve a CPD record.
- Parameters:
version (D2LVERSION) – API version.
recordId (D2LID) – Record ID.
- Oauth2 Scopes:
cpd:records:read
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – Insufficient scope.
404 Not Found – Record not found or insufficient permissions.
429 Too Many Requests – Api call-rate limit exceeded.
- API Versions:
1.84+ – Route first appears in LMS v20.25.5.
Return. Returns a
Record
JSON data block.
- GET /d2l/api/le/(version)/cpd/record/user/(userId)¶
Retrieve a paged list of CPD records for a user.
- Parameters:
version (D2LVERSION) – API version.
userId (D2LID) – UserId ID.
- Query Parameters:
methodId (D2LID) – Optional. Filter by method ID.
categoryId (D2LID) – Optional. Filter by category ID.
recordName (string) – Optional. Filter by record name.
startDate (UTCDateTime) – Optional. Filter by records completed after, and including, start date.
endDate (UTCDateTime) – Optional. Filter by records completed before, and including, end date.
recordStateId (RECORDSTATE_T) – Optional. Filter by record state ID.
sortDateAscending (boolean) – Optional (false by default). Sort records by ascending completion date.
limit (number) – Optional (20 by default). The number of records returned per page.
recordIdBookmark (D2LID) – Optional (null by default). The record ID to use as a bookmark for pagination.
- Oauth2 Scopes:
cpd:records:read
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – Insufficient scope.
404 Not Found – Record not found or insufficient permissions.
429 Too Many Requests – Api call-rate limit exceeded.
- API Versions:
1.84+ – Route first appears in LMS v20.25.5.
Return. Returns an
ObjectListPage
JSON data block containing a list ofRecordSummary
JSON data blocks.
- GET /d2l/api/le/(version)/cpd/record/(recordId)/attachment/(attachmentId)¶
Retrieve an attachment from a CPD record.
- Parameters:
version (D2LVERSION) – API version.
recordId (D2LID) – Record ID.
attachmentId (D2LID) – Attachment ID.
- Oauth2 Scopes:
cpd:records:read
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – Insufficient scope.
404 Not Found – Record not found or insufficient permissions.
429 Too Many Requests – Api call-rate limit exceeded.
- API Versions:
1.84+ – Route first appears in LMS v20.25.5.
Return. Returns a file stream containing the attachment data.
- PUT /d2l/api/le/(version)/cpd/record/(recordId)¶
Update a CPD record.
- Parameters:
version (D2LVERSION) – API version.
recordId (D2LID) – Record ID.
- JSON Parameters:
RecordUpdate (
Cpd.RecordUpdate
) – CPD record update data.
- Oauth2 Scopes:
cpd:records:manage
- Status Codes:
200 OK – Action succeeded.
400 Bad Request – Invalid request body.
403 Forbidden – Insufficient scope.
404 Not Found – Record not found or insufficient permissions.
429 Too Many Requests – Api call-rate limit exceeded.
- API Versions:
1.84+ – Route first appears in LMS v20.25.5.
Return. Returns a
Record
JSON data block.
Target Progress¶
Tracks user progress towards their Continuous Professional Development (CPD) targets.
- GET /d2l/api/le/(version)/cpd/target/progress/user/(userId)¶
Retrieve a user’s overall progress and their current progress for each category.
- Parameters:
version (D2LVERSION) – API version.
userId (D2LID) – User ID.
- Query Parameters:
methodId (D2LID) – Optional. Filter by method ID.
categoryId (D2LID) – Optional. Filter by category ID.
recordName (string) – Optional. Filter by the record name.
startDate (UtcDateTime) – Optional. Filter by records completed after, and including, start date.
endDate (UtcDateTime) – Optional. Filter by records completed before, and including, end date.
- Oauth2 Scopes:
cpd:targets:read
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – No permission to view this user’s progress or insufficient scope.
404 Not Found – User not found.
- API Versions:
1.84+ – Route first appears in LMS v20.25.5.
Return. Returns a
TargetProgress
JSON data block.
Record Fields¶
- GET /d2l/api/le/(version)/cpd/category/(categoryId)¶
Retrieve a category.
- Parameters:
version (D2LVERSION) – API version.
categoryId (D2LID) – Category ID.
- Oauth2 Scopes:
cpd:fields:read
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – Insufficient scope.
404 Not Found – Category not found or insufficient permissions.
429 Too Many Requests – Api call-rate limit exceeded.
- API Versions:
1.84+ – Route first appears in LMS v20.25.5.
Return. Returns a
Category
JSON data block.
- GET /d2l/api/le/(version)/cpd/method/(methodId)¶
Retrieve a method.
- Parameters:
version (D2LVERSION) – API version.
methodId (D2LID) – Method ID.
- Oauth2 Scopes:
cpd:fields:read
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – Insufficient scope.
404 Not Found – Method not found or insufficient permissions.
429 Too Many Requests – Api call-rate limit exceeded.
- API Versions:
1.84+ – Route first appears in LMS v20.25.5.
Return. Returns a
Method
JSON data block.
- GET /d2l/api/le/(version)/cpd/question/(questionId)¶
Retrieve a question.
- Parameters:
version (D2LVERSION) – API version.
questionId (D2LID) – Question ID.
- Oauth2 Scopes:
cpd:fields:read
- Status Codes:
200 OK – Action succeeded.
403 Forbidden – Insufficient scope.
404 Not Found – Question not found or insufficient permissions.
429 Too Many Requests – Api call-rate limit exceeded.
- API Versions:
1.84+ – Route first appears in LMS v20.25.5.
Return. Returns a
Question
JSON data block.