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

# Search Curricular Units

`POST /curricular-skills/curricular-units/search`

## Request

- Base URL: `https://api.lightcast.io/alumni-pathways`
- URL: `https://api.lightcast.io/alumni-pathways/curricular-skills/curricular-units/search`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `https://auth.emsicloud.com/connect/token` scopes: `alumni-pathways`

Lets you retrieve all Curricular Units that fit a set of parameters. There are a wide range of filter options including a text based search. You can also sort across multiple properties (ascending or descending as you see fit).

## Request body

- CurricularUnitSearchRequest
  - `data` object, required
    - `type` string, required
    - `attributes` object, required
      - `filter` object, required
        - `site` object, required
          - `in` string[], required: Example: `"in": ["site1", "site2"]`
        - `ids` union
          - object
            - `in` string[], required: Example: `"in": ["000000000000000000000000", "012345678901234567890123"]`
            - `exclude` string[]: Example: `"exclude": ["000000000000000000000000", "012345678901234567890123"]`
          - object
            - `in` string[]: Example: `"in": ["000000000000000000000000", "012345678901234567890123"]`
            - `exclude` string[], required: Example: `"exclude": ["000000000000000000000000", "012345678901234567890123"]`
        - `textFilter` object
          - `query` string, required
          - `fields` string[]
        - `text` union: Example: <br/>`"text": "search string"` <br/>`"text": "\"exact match search\""` <br/>`"text": {"query": "search string", "fields": ["title", "description"]}`
          - string
          - object
            - `query` string, required
            - `fields` string[]
        - `skills` union
          - object
            - `all` string[], required: Example: `"all": ["skillId1", "skillId2"]`
            - `in` string[]: Example: `"in": ["skillId1", "skillId2"]`
            - `and` union[]: **See the Example Request to see it in action.**
              - …
          - object
            - `all` string[]: Example: `"all": ["skillId1", "skillId2"]`
            - `in` string[], required: Example: `"in": ["skillId1", "skillId2"]`
            - `and` union[]: **See the Example Request to see it in action.**
              - …
          - object
            - `all` string[]: Example: `"all": ["skillId1", "skillId2"]`
            - `in` string[]: Example: `"in": ["skillId1", "skillId2"]`
            - `and` union[], required: **See the Example Request to see it in action.**
              - …
        - `isPublished` boolean: Example: `"isPublished": true`
        - `children` object
          - `in` string[], required: Example: `"children": ["unitId"]`
        - `parent` object
          - `in` string[], required: Example: `"children": ["unitId"]`
        - `academicUnit` object
          - `in` string[], required: Example: `"in": ["f9b1b90a-f05b-4a49-a0df-5062d626821c", "0ee7075c-31a6-4492-9559-aef9eab62baf"]
        - `unitType` object
          - `in` string[], required: Example: `"in": ["5d782386a05145a6a0fa20bf", "8yt82386a05145a6a0fa23be"]
        - `courseCode` union
          - object
            - `in` string[], required: Example: `"in": ["CS 4500", "DS 3500"]`
            - `exclude` string[]: Example: `"exclude": ["CS 1800"]`
          - object
            - `in` string[]: Example: `"in": ["CS 4500", "DS 3500"]`
            - `exclude` string[], required: Example: `"exclude": ["CS 1800"]`
      - `limit` number, required
      - `offset` number
      - `sort` array[]: Example:<br/> `[ ["title", "ascending"] ]`
        - string[]

## Response `200`

OK

- CurricularUnitSearchResponse
  - `meta` unknown
  - `data` object
    - `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.dev/lightcast/apis/alumni-pathways-2-0.md) - [All operations](https://skmtc.dev/lightcast/apis/alumni-pathways-2-0/llms.txt) - [OpenAPI document](https://skmtc.dev/lightcast/apis/alumni-pathways-2-0/revisions/fc66b9877391?raw)
