> ## 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 US states
    sourced from 1EdTech's CASE Network

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

    - **Standards crosswalks**: Connections between standards and frameworks

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


    **Learn more:**

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

    - [Standards](/knowledge-graph/schema-reference/standards)

    - [Learning
    Components](/knowledge-graph/schema-reference/learning-components)

    - [Standards crosswalks](/knowledge-graph/schema-reference/standards)

    - [Curriculum](/knowledge-graph/schema-reference/curriculum)

    - [Quickstart](/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 operations
  - name: Durable Skills
    description: Durable skills frameworks and skills operations
  - name: Hierarchy
    description: Hierarchical navigation operations
  - name: Learning Components
    description: Learning components operations
  - name: Learning Progressions
    description: Learning progressions operations
  - name: Search
    description: Search and discovery operations
  - name: Standards crosswalks
    description: Standards crosswalks 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
          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: Unique identifier for the resource in Knowledge Graph
      enum:
        - im360
    PaginatedResponse:
      type: object
      description: Cursor-based paginated response
      required:
        - data
        - pagination
      properties:
        data:
          type: array
          description: Array of result items
          items:
            type: object
        pagination:
          $ref: '#/components/schemas/Pagination'
    Course:
      type: object
      required:
        - identifier
        - author
        - provider
        - license
      properties:
        identifier:
          type: string
          description: Unique identifier for the resource in Knowledge Graph
        name:
          type: string
          description: Name or title of the resource
        description:
          type: string
          description: Description
        courseCode:
          type: string
          description: >-
            Unique identifier for the resource used by the course provider
            (e.g., "CS101" or "6.001")
        publisherIdentifier:
          type: string
          nullable: true
          description: Unique identifier for the resource used by the publisher
        academicSubject:
          $ref: '#/components/schemas/AcademicSubjectENUM'
        gradeLevel:
          type: array
          items:
            $ref: '#/components/schemas/GradeLevelENUM'
        author:
          type: string
          description: Author or creator of the resource
        provider:
          type: string
          description: Source data provider for the resource
        inLanguage:
          type: string
          description: Language used in the resource (BCP 47 format)
        educationalUse:
          type: string
          description: Educational use of the resource
        audience:
          type: array
          items:
            type: string
          description: Intended audience of the resource
        license:
          type: string
          description: URL to the resource's license document
        curriculumLabel:
          type: string
          description: Curriculum-specific categorization of the resource
        lmsLoadingGuidance:
          type: string
          description: LMS loading guidance for the resource
        timeRequired:
          type: string
          nullable: true
          description: >-
            Approximate amount of time required to work through the resource
            (ISO 8601 duration format)
        dateCreated:
          type: string
          format: date
          description: Date created
        attributionStatement:
          type: string
          description: >-
            Statement that acknowledges the resource's author and provider, as
            required by the CC BY 4.0 license
    Error:
      type: object
      description: Standard error response object returned for all error conditions
      required:
        - error
        - message
        - requestId
      properties:
        error:
          type: string
          description: >-
            Machine-readable error type identifier (e.g., `ValidationError`,
            `NotFoundError`, `InternalServerError`)
        message:
          type: string
          description: >-
            Human-readable error message that explains what went wrong and may
            include actionable guidance
        requestId:
          type: string
          description: Unique identifier for this request (for debugging and support)
        details:
          type: object
          description: >-
            Optional additional details about the error, such as validation
            failures or field-specific issues
          additionalProperties: true
    Pagination:
      type: object
      description: Cursor-based pagination metadata
      required:
        - limit
        - hasMore
      properties:
        limit:
          type: integer
          description: Maximum number of results to return per page
        nextCursor:
          type: string
          nullable: true
          description: >-
            Cursor for fetching the next page of results in your next request
            (`null` if there are no more results)
        hasMore:
          type: boolean
          description: Whether there are more results after this page
    AcademicSubjectENUM:
      type: string
      description: Academic subject area
      enum:
        - English Language Arts
        - Mathematics
        - Science
        - Social Studies
        - Other
    GradeLevelENUM:
      type: string
      description: Educational grade level that the resource is intended for
      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
      schema:
        type: integer
        minimum: 1
        maximum: 1000
        default: 100
    CursorParam:
      name: cursor
      in: query
      required: false
      description: >-
        Pagination cursor obtained from the `nextCursor` field in a previous
        response (not needed for the first page)
      schema:
        type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication

````