---
title: "Course Search"
method: POST
path: "/curricular-skills/courses/search"
tags: ["Courses Search"]
---

# Course Search

`POST /curricular-skills/courses/search`

Lets you retrieve all Courses 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

- CourseSearchRequest
  - `data` object, required
    - `type` string, required
    - `attributes` object, required
      - `options` object
        - `expand` string[] — Example: ["skills"]
      - `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`
        - `associatedGroups` object
          - `in` string[], required — Example: `"associatedGroups": ["groupId"]`
        - `associatedGroup` string — Example: `"associatedGroup": "groupId"`
      - `limit` number, required
      - `offset` number
      - `sort` array[] — Example:<br/> `[ ["title", "ascending"], ["credits", "descending"] ]`
        - string[]

## Response `200`

OK

- CourseSearchResponse
  - `meta` unknown
  - `data` object[]
    - `type` string, required
    - `id` string, required
    - `attributes` object, required
      - `skills` union
        - string[]
        - object[]
          - `id` string, required
          - `isLearningObjective` boolean
      - `title` string, required
      - `site` string, required
      - `courseId` string
      - `description` string
      - `credits` number
      - `url` string
      - `syllabusText` string
      - `learningObjectiveText` string
      - `isPublished` boolean, required
      - `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)
