---
title: "Upload Curricular Units"
method: POST
path: "/curricular-skills/curricular-units"
tags: ["Curricular Units"]
---

# Upload Curricular Units

`POST /curricular-skills/curricular-units`

Provides functionality for creating individual curricular units one at a time. You may create a single curricular unit by making a POST request with a valid group object to the `/curricular-skills/curricular-unit` endpoint. The curricular unit object must contain, at the minimum, a valid `site` and a `title`. `id` is not a valid attribute as it is automatically generated and cannot be changed.

## Request body

- CurricularUnitPostRequest
  - `data` object, required
    - `type` string, required
    - `attributes` object, required
      - `site` string, required
      - `customerUnitId` string, nullable
      - `skillabiType` 'group' | 'course', required
      - `title` string, required
      - `description` string
      - `url` string
      - `reviewAssignedTo` string
      - `reviewStatus` string
      - `reviewNotes` string
      - `isPublished` boolean
      - `unitType` string
      - `academicUnit` string
      - `syllabusText` string, nullable
      - `learningObjectiveText` string, nullable
      - `courseCode` string, nullable
      - `cipCode` string, nullable
      - `credits` number, nullable
      - `children` union
        - object[]
          - `id` string, required
          - `isRequired` boolean
        - string[]
      - `skills` union[]
        - union
          - object
            - `id` string, required
            - `isLearningObjective` boolean
          - string
      - `benchmarks` object[]
        - `id` string, required
        - `selected` boolean, required
      - `lotBenchmarks` object[]
        - `id` string, required
        - `type` 'career_area' | 'specialized_occupation' | 'occupation' | 'occupation_group', required

## Response `201`

OK

- SingleCurricularUnitResponse
  - `data` object, required
    - `type` string, required
    - `id` string, required
    - `attributes` object, required
      - `customerUnitId` string, nullable
      - `skillabiType` 'group' | 'course', required
      - `courseCode` string
      - `site` string, required
      - `title` string, required
      - `description` string
      - `credits` number
      - `isPublished` boolean
      - `isMarkedRevisit` boolean
      - `url` string
      - `reviewAssignedTo` string
      - `reviewStatus` string
      - `reviewNotes` string
      - `syllabusText` string
      - `learningObjectiveText` string
      - `skills` unknown[]
        - unknown
      - `cipCode` string
      - `unitType` object
        - `id` string, required
        - `label` string, required
        - `unitTypeClass` object, required
          - `id` string, required
          - `name` string, required
      - `children` object[]
        - `id` string, required
        - `attributes` object, required
          - `title` string, required
          - `isRequired` boolean, required
      - `benchmarks` object[]
        - `id` string
        - `selected` boolean
      - `lotBenchmarks` object[]
        - `id` string
        - `type` 'career_area' | 'specialized_occupation' | 'occupation' | 'occupation_group'
        - `selected` boolean
      - `targetOccupations` object[]
        - `id` string, required
        - `taxonomyId` string, required
        - `level` string
      - `createdAt` string
      - `updatedAt` string

## Other responses

- `400` — bad request
- `403` — You don't have access to traveltime data.

---

[API](https://skmtc.net/lightcast/apis/alumni-pathways-2-0.md) · [All operations](https://skmtc.net/lightcast/apis/alumni-pathways-2-0/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lightcast/alumni-pathways-2-0/revisions/fc66b9877391/schema)
