---
category: [Administration & Integrations, Administration & Integrations/Workday API, Platform and Product Extensions, Platform and Product Extensions/Integration, Administration & Integrations/Custom Integrations & Apps, Platform and Product Extensions/Workday Extend, Talent & Engagement, Talent & Engagement/Training, Talent Management, Talent Management/Learning, Talent & Engagement/Training/Digital Courses, Talent & Engagement/Training/Required Courses & Lessons, Talent & Engagement/Training/Blended Courses, Talent & Engagement/Training/Lessons, Human Capital Management, Talent & Engagement/Training/LMS Course Catalog]
nav: wcp_docs
parent_url: /wcp_docs/
title: Records REST API
layout: subsection
---

## <a id="section_1"></a>Overview

The <i>Records</i> REST API in the <i>Learning</i> REST service enables third-party integrations to obtain the following learning record information for a learner:

-   Enrollment record.
-   Equivalent learning record.
-   Media tracking for stand-alone lessons.
-   Imported record.


The learning record contains enrollment information, and enables a third-party integration to access all the necessary learning information (learner status, grade, and score, rather than just an ID) without necessitating a separate call.

The <i>Records</i> Rest API also enables the retrieval of all the learning records for a piece of content. To get the enrollments for a piece of content, specify the learning content WID in the request. The API call will return all the enrollments associated with the content.

You can filter Learning Records by:

-   Lifecycle Status.
-   Learning Participant.
-   Learning Record Type.
-   Record Completion Status.
-   Learning Record Content.
-   Record Successfully Complete.
-   Expiration Date After.
-   Expiration Date Before or On.
-   Last Updated


Each learning record includes a <b>Last Updated</b> value. You can use this field to identify records that changed since your last integration run. Workday updates <b>Last Updated</b> on a learning record when specific record values change. The field doesn't update for every change you can make to an underlying enrollment.

For enrollment learning records, Workday updates <b>Last Updated</b>when you change any of these values:

-   Lifecycle Status.
-   Expiration Date.
-   Record Attendance Status.
-   Record Completion Status.
-   Record Score.
-   Record Grade.


For imported learning records, Workday updates <b>Last Updated</b> when you change:

-   Record Completion Status.
-   Record Grade.
-   Record Score.


For equivalent learning records, Workday updates <b>Last Updated</b> when you change:

-   Record Completion Status.
-   Expiration Date.


For media tracking records for stand-alone lessons, Workday updates <b>Last Updated</b> when you change Record Completion Status.

Example: If you use the Put Learning Enrollment EIB to update the registration date or completion date on a completed enrollment, the enrollment updates successfully, but <b>Last Updated</b> on the learning record doesn't change.

For reference documentation about the <i>Records</i> REST API, see `learning/records` in the [REST API Explorer on the Developer Site](https://developer.workday.com/rest-api-explorer) or [Workday REST Services Directory](https://community.workday.com/sites/default/files/file-hosting/restapi/index.html) .

## <a id="section_2"></a>URL Base Path

Tenant <b>Base Path</b>

```
https://{tenantHostname}/api/learning/v1/{tenantName}/records
```

Example:

```
https://yourTenantHostName.com/api/learning/v1/{tenantName}/records
```

<b>Workday Extend API Gateway Base Path</b>

For Workday Extend apps, use the regional API Gateway base URL for your company. See [Reference: Workday Extend API Gateways and Authorization Base URLs](https://developer.workday.com/documentation/dlh1653340161856) on the Developer Site. Note that the API Gateway base URL doesn’t include the tenant name.

## <a id="section_3"></a>Security Considerations

The learning record information obtained by the <i>Records</i> REST API is secured to the <i>Manage: Learning Records</i> domain in the Learning functional area.

## <a id="section_4"></a>Integration Touchpoints

The Content WID is required to use the <i>Records</i> REST API. To obtain the Content WID, you must enable these REST APIs:

-   [Content Rest API](/wcp_docs/GUID-b38acd5b-2859-4cee-9387-a8d98522c59b-enHYPHENus.html): If the content is consumed from a third-party platform and originates from Workday Learning, use the <i>Content</i> REST API to obtain the Content WID.
-   [Manage Digital Course REST API](/wcp_docs/GUID-d73d250a-a925-4c9f-89ff-d1f6efac1076-enHYPHENus.html): If the content is consumed from Workday Learning and originates from a third-party platform, use the <i>Manage Digital Course</i> REST API to create the digital course within Workday. To obtain the Content WID, you must set up the Manage Digital Course business process to autocomplete.


## <a id="section_5"></a>Getting Records for a Learner

The `GET/records?learner={learnerID}` endpoint facilitates the retrieval of records for a learner.

This sample request gets the learning records for a learner with the Workday ID:

```
GET /records?learner=b4e6be32084810b5f5f8599dd52d019eb4e6be32084810b5f5f8599dd52d019e
 
```

Sample Response

```
{
  "total": 37,
  "data": [
    {
      "id": "323e8420a29b014e8a1770b1410a6202",
      "lifecycleStatus": {
        "descriptor": "Enrolled",
        "id": "cb6902eac8a110002327d007902323af"
      },
      "learner": {
        "descriptor": "LRN Jim Baines",
        "id": "b4e6be32084810b5f5f8599dd52d019e"
      },
      "contentType": {
        "descriptor": "Digital Course",
        "id": "9882927d138b100019b928e75843018d"
      },
      "attendanceStatus": {
        "descriptor": "Do Not Track",
        "id": "0eecacc6581e10000da553b159111197"
      },
      "completionStatus": {
        "descriptor": "Not Started",
        "id": "7aef2fdf8717451787cf46ef34cfb0d1"
      },
      "recordType": {
        "descriptor": "Enrollment",
        "id": "908392fbddd110001685499127931307"
      },
      "content": {
        "descriptor": "Engage through Storytelling",
        "id": "488e285c181a01e18c44e53f30252f09"
      },
      "startDate": "2019-11-27T1702.000Z"

    },......
  ]
}
 
```

## <a id="section_6"></a>Getting Enrollments for a Learner for a Specific Content

The `GET /records?content={contentID}&learner={learnerID}` endpoint facilitates the retrieval of all enrollments for a learner, for a piece of content.

This sample request gets the learning records for a specific learning content for a learner with the given Workday ID:

```
GET /records?content=488e285c181a01e18c44e53f30252f09&learner=b4e6be32084810b5f5f8599dd52d019e
 
```

Sample Response

```
{
  "total": 1,
  "data": [
    {
      "id": "323e8420a29b014e8a1770b1410a6202",
      "completionStatus": {
        "descriptor": "Not Started",
        "id": "7aef2fdf8717451787cf46ef34cfb0d1"
      },
      "content": {
        "descriptor": "Engage through Storytelling",
        "id": "488e285c181a01e18c44e53f30252f09"
      },
      "contentType": {
        "descriptor": "Digital Course",
        "id": "9882927d138b100019b928e75843018d"
      },
      "attendanceStatus": {
        "descriptor": "Do Not Track",
        "id": "0eecacc6581e10000da553b159111197"
      },
      "recordType": {
        "descriptor": "Enrollment",
        "id": "908392fbddd110001685499127931307"
      },
      "startDate": "2019-11-27T171802.000Z",
      "learner": {
        "descriptor": "LRN Jim Baines",
        "id": "b4e6be32084810b5f5f8599dd52d019e"
      },
      "lifecycleStatus": {
        "descriptor": "Enrolled",
        "id": "cb6902eac8a110002327d007902323af"
      }

    }
  ]
}
 
```

## <a id="section_7"></a>Getting Enrollments for Specific Learning Content

The `GET /records?content={contentID}` endpoint facilitates the retrieval of all enrollments for a piece of content. This endpoint returns a collection of all records for the specified content.

This sample request gets the learning records for a specific learning content with the given Workday ID:

```
GET /records?content=488e285c181a01e18c44e53f30252f09
 
```

Sample Response

```
{
  "total": 2,
  "data": [
    {
      "id": "323e8420a29b014e8a1770b1410a6202",
      "learner": {
        "descriptor": "LRN Jim Baines",
        "id": "b4e6be32084810b5f5f8599dd52d019e"
      },
      "completionStatus": {
        "descriptor": "Not Started",
        "id": "7aef2fdf8717451787cf46ef34cfb0d1"
      },
      "lifecycleStatus": {
        "descriptor": "Enrolled",
        "id": "cb6902eac8a110002327d007902323af"
      },
      "contentType": {
        "descriptor": "Digital Course",
        "id": "9882927d138b100019b928e75843018d"
      },
      "attendanceStatus": {
        "descriptor": "Do Not Track",
        "id": "0eecacc6581e10000da553b159111197"
      },
      "content": {
        "descriptor": "Engage through Storytelling",
        "id": "488e285c181a01e18c44e53f30252f09"
      },
      "startDate": "2019-11-27T171802.000Z",
      "recordType": {
        "descriptor": "Enrollment",
        "id": "908392fbddd110001685499127931307"
      }

    },...
  ]
}
 
```

## <a id="section_8"></a>Common Errors

<table><thead><tr><th>Error</th><th>Error Code</th><th>Cause and Solution</th></tr></thead><tbody><tr><td>Missing Required Field Malformed Syntax Invalid Data Value Duplicate Resource</td><td>400 Bad Request</td><td>Check the syntax of request body, identify required fields, see if any ID or title already exists.</td></tr><tr><td>Authentication Failed</td><td>401 Unauthorized</td><td>Ensure your request headers contain a valid and unexpired API key or bearer token.</td></tr></tbody></table><br/>

### Related Information

[Learning REST Web Service](https://doc.workday.com/release-notes/en-us/lrn/9234679.html)

