> ## Documentation Index
> Fetch the complete documentation index at: https://docs.learningcommons.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Courses in a curriculum

> Fetches a list of Course objects for a specific curriculum.

A Course consists of a structured sequence of instructional content and activities designed to teach specific skills, knowledge, or competencies over a defined period. It typically encompasses multiple lesson groupings, lessons, and activities and aligns with curriculum standards and intended learning objectives for a particular grade level or subject area.

Use this endpoint when you need to:
- Discover available courses within a curriculum
- Get course metadata (name, description, grade levels, subject)
- Find course identifiers needed for other curriculum endpoints


<Note>
  Currently, <code>im360</code> is the only valid value for the <code>curriculumId</code> parameter.
</Note>


## OpenAPI

````yaml /api-reference/knowledge-graph-api/openapi.yaml get /courses
openapi: 3.0.3
info:
  title: Learning Commons Knowledge Graph REST API
  description: >
    REST API for accessing education knowledge graph data including academic
    standards, learning components, and curriculum information.


    **Key datasets:**

    - **Academic standards**: Official state standards from all 50 U.S. states
    sourced from 1EdTech's CASE Network

    - **Curriculum**: Structured course content including courses, lesson
    groupings (units, sections, modules), lessons, activities, and assessments

    - **Learning components**: Granular, teachable skills that break down broad
    standards into actionable instructional units

    - **Relationships**: Hierarchical and semantic connections between
    standards, learning components, and frameworks


    **Learn more:**

    - [Knowledge Graph
    Overview](/knowledge-graph/understanding-knowledge-graph/about-knowledge-graph)

    - [Academic Standards
    Dataset](/knowledge-graph/entity-and-relationship-reference/academic-standards)

    - [Learning Components
    Dataset](/knowledge-graph/entity-and-relationship-reference/learning-components)

    - [Quick Start Guide](/knowledge-graph/getting-started/quickstart)
  version: '0'
servers:
  - url: https://api.learningcommons.org/knowledge-graph/v0
    description: Production server
security:
  - ApiKeyAuth: []
tags:
  - name: Academic standards
    description: Academic standards operations
  - name: Curriculum
    description: Curriculum and course operations
  - name: Hierarchy
    description: Hierarchical navigation operations
  - name: Learning components
    description: Learning component operations
  - name: Learning progressions
    description: Learning progression and prerequisite relationships
  - name: Search
    description: Search and discovery operations
  - name: Standards crosswalks
    description: Standards crosswalk operations
  - name: Standards frameworks
    description: Standards frameworks operations
paths:
  /courses:
    get:
      tags:
        - Curriculum
      summary: Courses in a curriculum
      description: >
        Fetches a list of Course objects for a specific curriculum.


        A Course consists of a structured sequence of instructional content and
        activities designed to teach specific skills, knowledge, or competencies
        over a defined period. It typically encompasses multiple lesson
        groupings, lessons, and activities and aligns with curriculum standards
        and intended learning objectives for a particular grade level or subject
        area.


        Use this endpoint when you need to:

        - Discover available courses within a curriculum

        - Get course metadata (name, description, grade levels, subject)

        - Find course identifiers needed for other curriculum endpoints
      operationId: listCourses
      parameters:
        - name: curriculumId
          in: query
          required: true
          description: The identifier for the curriculum to retrieve courses from.
          schema:
            $ref: '#/components/schemas/CurriculumIdENUM'
        - $ref: '#/components/parameters/LimitParam'
        - $ref: '#/components/parameters/CursorParam'
      responses:
        '200':
          description: Successfully retrieved list of courses
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Course'
              example:
                data:
                  - identifier: im:b532b7df-4989-53a2-8f53-8dd829343423
                    name: Geometry
                    description: >-
                      For the first several units, students practice making
                      conjectures and observations. This begins with work on
                      compass and straightedge constructions. Students gradually
                      build up to writing formal proofs in narrative form
                      engaging in a cycle of conjecture, rough draft, peer
                      feedback, and final draft.
                    courseCode: im360:Geo
                    academicSubject: Mathematics
                    gradeLevel:
                      - high_school
                      - '9'
                      - '10'
                      - '11'
                      - '12'
                    author: Illustrative Mathematics
                    provider: Learning Commons
                    inLanguage: English
                    educationalUse: instruction
                    audience:
                      - Teacher
                      - Student
                      - Family
                    license: https://creativecommons.org/licenses/by-nc/4.0/
                    dateCreated: '2020-06-25'
                  - identifier: im:1459a7dd-a3cd-5540-ada3-60553e2d5987
                    name: Integrated Math 2
                    description: >-
                      Students begin the course making observations about
                      triangles. Building from these observations, students
                      gather experimental information, develop conjectures,
                      write informal justifications, and then progress to
                      writing formal proofs using definitions, assertions, and
                      theorems developed in Math 1.
                    courseCode: im360:Math2
                    academicSubject: Mathematics
                    gradeLevel:
                      - high_school
                      - '9'
                      - '10'
                      - '11'
                      - '12'
                    author: Illustrative Mathematics
                    provider: Learning Commons
                    inLanguage: English
                    educationalUse: instruction
                    audience:
                      - Teacher
                      - Student
                      - Family
                    license: https://creativecommons.org/licenses/by-nc/4.0/
                    dateCreated: '2023-08-22'
                pagination:
                  limit: 100
                  nextCursor: aW06MTQ1OWE3ZGQtYTNjZC01NTQwLWFkYTMtNjA1NTNlMmQ1OTg3
                  hasMore: false
        '400':
          description: Bad request - Invalid query parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: ValidationError
                message: Invalid query parameter value provided
                requestId: req_12345
        '422':
          description: Unprocessable Entity - Invalid curriculumId value
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: ValidationError
                message: Input should be 'im360'
                requestId: req_12345
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: InternalServerError
                message: An unexpected error occurred while retrieving courses
                requestId: req_12345
components:
  schemas:
    CurriculumIdENUM:
      type: string
      description: Curriculum identifier
      enum:
        - im360
    PaginatedResponse:
      type: object
      description: Generic cursor-based paginated response wrapper
      required:
        - data
        - pagination
      properties:
        data:
          type: array
          description: Array of result items
          items:
            type: object
        pagination:
          type: object
          description: Cursor-based pagination metadata
          required:
            - limit
            - hasMore
          properties:
            limit:
              type: integer
              description: Maximum number of results returned per page
            nextCursor:
              type: string
              nullable: true
              description: >-
                Cursor for fetching the next page. Null if no more results
                available. Pass this value as the 'cursor' parameter in the next
                request.
            hasMore:
              type: boolean
              description: >-
                Indicates whether there are more results available after this
                page
    Course:
      type: object
      required:
        - identifier
        - author
        - provider
        - license
      properties:
        identifier:
          type: string
          description: The unique identifier of the course
        name:
          type: string
          description: The name of the course
        description:
          type: string
          description: A detailed description of the course
        courseCode:
          type: string
          description: >-
            The identifier for the course used by the course provider (e.g.,
            CS101 or 6.001)
        publisherIdentifier:
          type: string
          nullable: true
          description: The identifier assigned to this resource by its publisher
        academicSubject:
          $ref: '#/components/schemas/AcademicSubjectENUM'
        gradeLevel:
          type: array
          items:
            $ref: '#/components/schemas/GradeLevelENUM'
          description: Specifies the educational grades for which the course is intended
        author:
          type: string
          description: The author of the course
        provider:
          type: string
          description: The service provider or service operator
        inLanguage:
          type: string
          description: The language of the content
        educationalUse:
          type: string
          description: The educational use of the course
        audience:
          type: array
          items:
            type: string
          description: Specifies the intended audience for the course
        license:
          type: string
          description: >-
            A license document that applies to this content, typically indicated
            by URL
        curriculumLabel:
          type: string
          description: A curriculum-specific categorization of the resource
        lmsLoadingGuidance:
          type: string
          description: LMS loading guidance for this course
        timeRequired:
          type: string
          nullable: true
          description: >-
            Approximate or typical time it usually takes to work with or through
            the course (ISO 8601 duration format)
        dateCreated:
          type: string
          format: date
          description: The date on which the course was created
        attributionStatement:
          type: string
          description: A human-readable attribution statement for this course
    Error:
      type: object
      description: Standard error response object returned for all error conditions
      required:
        - error
        - message
        - requestId
      properties:
        error:
          type: string
          description: >-
            A machine-readable error type identifier (e.g., ValidationError,
            NotFoundError, InternalServerError)
        message:
          type: string
          description: >-
            A human-readable error message that explains what went wrong and may
            include actionable guidance
        requestId:
          type: string
          description: >-
            A unique identifier for this request, useful for debugging and
            support
        details:
          type: object
          description: >-
            Optional additional details about the error, such as validation
            failures or field-specific issues
          additionalProperties: true
    AcademicSubjectENUM:
      type: string
      description: Academic subject area
      enum:
        - English Language Arts
        - Mathematics
        - Science
        - Social Studies
        - Other
    GradeLevelENUM:
      type: string
      description: Educational grade level
      enum:
        - PK
        - K
        - '1'
        - '2'
        - '3'
        - '4'
        - '5'
        - '6'
        - '7'
        - '8'
        - '9'
        - '10'
        - '11'
        - '12'
  parameters:
    LimitParam:
      name: limit
      in: query
      required: false
      description: >-
        Maximum number of results to return. Default is 100. Maximum allowed is
        1000.
      schema:
        type: integer
        minimum: 1
        maximum: 1000
        default: 100
    CursorParam:
      name: cursor
      in: query
      required: false
      description: >-
        Cursor for pagination. Obtain this value from the 'nextCursor' field in
        the previous response. Omit for the first page.
      schema:
        type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        API key for authentication. Include your API key in the x-api-key header
        for all requests.

````