---
title: "Create a New Required Learning"
method: POST
path: "/api/v2/required-learning"
tags: ["RequiredLearning"]
---

# Create a New Required Learning

`POST /api/v2/required-learning`

This endpoint creates a new required learning item. <br><br>For Global Admin Tool Organizations, the `X-Degreed-Organization-Code` header must be provided.<h3>Required Scope</h3>`required_learning:write`

## Headers

- `X-Degreed-Organization-Code` string

## Request body

- V2RequiredlearningBody
  - `data` Apiv2requiredlearningData
    - `type` string
    - `attributes` Apiv2requiredlearningDataAttributes
      - `user-id` string, nullable, required — The ID of the user to assign the content item to.
      - `user-identifier-type` string, nullable, required — Can be any `UserId`,` Email`, `EmployeeId`, `AliasUid`, or `AliasEmail`.
      - `assigner-id` string, nullable — The ID of the user that assigned the content item. The user must have the Assign Content permission.
      - `assigner-identifier-type` string — Can be any `UserId`,` Email`, `EmployeeId`, `AliasUid`, or `AliasEmail`.
      - `content-id` string, nullable, required — The unique ID of the content.
      - `content-id-type` string, nullable, required — Can be `ExternalId`, `Id`, or `ContentUrl`.
      - `content-type` string, required — Can be `Article`, `Book`, `Course`, `Event`, or `Video`.
      - `assignment-type` string, nullable, required — Can be `Required` or `Assigned`. If the `assignment-type` is `required`, an `assigner-id` is not allowed. If the `assignment-type` is `assigned`, an `assigner-id` is required.
      - `due-at` string, date-time, nullable — Date and time for when the assignment is due.

## Response `201`

Success

- PostedRequiredLearning
  - `data` PostedRequiredLearningData
    - `type` string, nullable
    - `id` string, nullable
    - `attributes` PostedRequiredLearningDataAttributes
      - `user-id` string, nullable — The unique identifier of the user.
      - `user-identifier-type` string, nullable — The type of user identifier. Could only be `UserId`, `Email`, `EmployeeId`, `AliasUid` or `AliasEmail`.
      - `content-id` string, nullable — The unique identifier of the content.
      - `content-id-type` string, nullable — The type of content identifier. Could only be `ExternalId`, `Id`, or `ContentUrl`.
      - `content-type` string, nullable — The content type of the resource. Can only be `Article`, `Book`, `Course`, `Event`, or `Video`.
      - `external-enrollment-id` string, nullable — The external enrollment identifier for the required learning item.
      - `assignment-type` string, nullable — Can only be `Assigned` or `Required`.
      - `due-at` string, date-time — The date the required learning item is due. (UTC)
      - `created-at` string, date-time — The date the required learning item was created. (UTC)
      - `modified-at` string, date-time, nullable — The date the required learning item was modified. (UTC)
      - `status` string, nullable — The status of the required learning item. Can only be `Queued`, `Pending`, `Dismissed` or `Complete`.
    - `links` SelfLink
      - `self` string

---

[API](https://skmtc.net/degreed/apis/degreed-api-web.md) · [All operations](https://skmtc.net/degreed/apis/degreed-api-web/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/degreed/degreed-api-web/revisions/4a22b709515c/schema)
