Developer Platform (July 2025)

My CPD Records

«  Surveys   ·  [   home  ·   reference  ·   community   |   search  ·   index   ·  routing table   ·  scopes table   ]   ·  Assessments and rubrics  »

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:
Oauth2 Scopes:

cpd:records:read

Status Codes:
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:
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:
API Versions:
  • 1.84+ – Route first appears in LMS v20.25.5.

Return. Returns an ObjectListPage JSON data block containing a list of RecordSummary 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:
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:
JSON Parameters:
Oauth2 Scopes:

cpd:records:manage

Status Codes:
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:
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:
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:
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:
Oauth2 Scopes:

cpd:fields:read

Status Codes:
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:
API Versions:
  • 1.84+ – Route first appears in LMS v20.25.5.

Return. Returns a Question JSON data block.

«  Surveys   ·  [   home  ·   reference  ·   community   |   search  ·   index   ·  routing table   ·  scopes table   ]   ·  Assessments and rubrics  »