> ## 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.

# Scope and sequence for a course

> Returns the complete hierarchical structure of a course including its lesson groupings and lessons in a scope and sequence format.

The structure follows this hierarchy:
- Course → Lesson Groupings (can be nested) → Lessons

**Note:** Different curricula use different organizational structures. Lesson groupings might be called units, modules, chapters, sections, themes, etc. depending on the curriculum. The `groupName` property in each lesson grouping indicates what type it is (e.g., "unit", "section", "module").

Use this endpoint when you need to:
- Display the complete course outline or table of contents
- Navigate the course structure programmatically
- Build a course curriculum map or scope and sequence view
- Understand the full instructional progression of a course

The `view` parameter controls the level of detail:
- `summary`: Returns only essential navigation fields (identifiers, names, positions)
- `full`: Returns complete objects with all properties for each element




## OpenAPI

````yaml /api-reference/knowledge-graph-api/openapi.yaml get /courses/{courseId}/scope-and-sequence
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/{courseId}/scope-and-sequence:
    get:
      tags:
        - Curriculum
      summary: Scope and sequence for a course
      description: >
        Returns the complete hierarchical structure of a course including its
        lesson groupings and lessons in a scope and sequence format.


        The structure follows this hierarchy:

        - Course → Lesson Groupings (can be nested) → Lessons


        **Note:** Different curricula use different organizational structures.
        Lesson groupings might be called units, modules, chapters, sections,
        themes, etc. depending on the curriculum. The `groupName` property in
        each lesson grouping indicates what type it is (e.g., "unit", "section",
        "module").


        Use this endpoint when you need to:

        - Display the complete course outline or table of contents

        - Navigate the course structure programmatically

        - Build a course curriculum map or scope and sequence view

        - Understand the full instructional progression of a course


        The `view` parameter controls the level of detail:

        - `summary`: Returns only essential navigation fields (identifiers,
        names, positions)

        - `full`: Returns complete objects with all properties for each element
      operationId: getCourseScopeAndSequence
      parameters:
        - name: courseId
          in: path
          required: true
          description: The unique identifier of the course
          schema:
            type: string
        - name: view
          in: query
          required: false
          description: >
            Controls the level of detail in the response.

            - `summary`: Returns only identifiers, names, and positions
            (lightweight)

            - `full`: Returns complete objects with all properties (heavyweight)
          schema:
            type: string
            enum:
              - summary
              - full
            default: summary
      responses:
        '200':
          description: Successfully retrieved course scope and sequence
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScopeAndSequence'
              example:
                courseId: im:b532b7df-4989-53a2-8f53-8dd829343423
                courseName: Geometry
                view: summary
                lessonGroupings:
                  - identifier: im:87b50a26-acbf-5798-ac94-ca1423679acd
                    name: Constructions and Rigid Transformations
                    ordinalName: Unit 1
                    groupName: unit
                    groupLevel: 0
                    position: 0
                    lessons: null
                    children:
                      - identifier: im:section-a-001
                        name: Constructions
                        ordinalName: Section A
                        groupName: section
                        groupLevel: 1
                        position: 0
                        children: null
                        lessons:
                          - identifier: im:lesson-001
                            name: Build It
                            ordinalName: Lesson 1
                            position: 0
                          - identifier: im:lesson-002
                            name: Constructing Patterns
                            ordinalName: Lesson 2
                            position: 1
                      - identifier: im:section-b-001
                        name: Defining Rigid Transformations
                        ordinalName: Section B
                        groupName: section
                        groupLevel: 1
                        position: 1
                        children: null
                        lessons:
                          - identifier: im:lesson-006
                            name: Transformation Times
                            ordinalName: Lesson 6
                            position: 0
                  - identifier: im:9cc92808-016e-5b7b-865f-dab6764cb504
                    name: Congruence
                    ordinalName: Unit 2
                    groupName: unit
                    groupLevel: 0
                    position: 1
                    lessons: null
                    children:
                      - identifier: im:section-a-002
                        name: Congruent Parts, Congruent Figures
                        ordinalName: Section A
                        groupName: section
                        groupLevel: 1
                        position: 0
                        children: null
                        lessons:
                          - identifier: im:lesson-008
                            name: Moving Through Transformations
                            ordinalName: Lesson 8
                            position: 0
        '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
        '404':
          description: Course not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: NotFoundError
                message: Course with identifier 'im:invalid-id' not found
                requestId: req_12345
        '422':
          description: Unprocessable Entity - Invalid view parameter value
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: ValidationError
                message: Input should be 'summary' or 'full'
                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 course scope and
                  sequence
                requestId: req_12345
components:
  schemas:
    ScopeAndSequence:
      oneOf:
        - $ref: '#/components/schemas/ScopeAndSequenceSummary'
        - $ref: '#/components/schemas/ScopeAndSequenceFull'
      discriminator:
        propertyName: view
        mapping:
          summary:
            $ref: '#/components/schemas/ScopeAndSequenceSummary'
          full:
            $ref: '#/components/schemas/ScopeAndSequenceFull'
    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
    ScopeAndSequenceSummary:
      title: Summary View
      type: object
      description: >-
        Hierarchical structure of a course showing lesson groupings and lessons
        (summary view with minimal fields)
      required:
        - courseId
        - courseName
        - view
        - lessonGroupings
      properties:
        courseId:
          type: string
          description: The unique identifier of the course
        courseName:
          type: string
          description: The name of the course
        view:
          type: string
          enum:
            - summary
          description: The level of detail included in the response
        lessonGroupings:
          type: array
          description: >-
            Top-level lesson groupings (e.g., units, modules, chapters) in the
            course
          items:
            $ref: '#/components/schemas/LessonGroupingNode'
    ScopeAndSequenceFull:
      title: Full View
      type: object
      description: >-
        Hierarchical structure of a course showing lesson groupings and lessons
        (full view with all metadata)
      required:
        - courseId
        - courseName
        - view
        - lessonGroupings
      properties:
        courseId:
          type: string
          description: The unique identifier of the course
        courseName:
          type: string
          description: The name of the course
        view:
          type: string
          enum:
            - full
          description: The level of detail included in the response
        lessonGroupings:
          type: array
          description: >-
            Top-level lesson groupings (e.g., units, modules, chapters) in the
            course
          items:
            $ref: '#/components/schemas/LessonGroupingNodeFull'
    LessonGroupingNode:
      type: object
      description: >-
        A lesson grouping node in the course hierarchy for summary view (minimal
        fields)
      required:
        - identifier
        - name
        - groupName
        - groupLevel
        - position
      properties:
        identifier:
          type: string
          description: The unique identifier of the lesson grouping
        name:
          type: string
          description: The name of the lesson grouping
        ordinalName:
          type: string
          description: >-
            A label combining sequence number with descriptive text (e.g., "Unit
            1", "Chapter 2")
        groupName:
          type: string
          description: The type of grouping (e.g., "unit", "section", "module", "chapter")
        groupLevel:
          type: integer
          description: >-
            The nesting level of this grouping (0 = top level, 1 = nested once,
            etc.)
        position:
          type: integer
          description: The position of this grouping within its parent
        children:
          type: array
          description: Nested lesson groupings within this grouping
          items:
            $ref: '#/components/schemas/LessonGroupingNode'
        lessons:
          type: array
          description: Lessons within this grouping
          items:
            $ref: '#/components/schemas/LessonNode'
    LessonGroupingNodeFull:
      type: object
      description: >-
        A lesson grouping node in the course hierarchy for full view (all
        metadata fields)
      required:
        - identifier
        - name
        - groupName
        - groupLevel
        - position
      properties:
        identifier:
          type: string
          description: The unique identifier of the lesson grouping
        name:
          type: string
          description: The name of the lesson grouping
        ordinalName:
          type: string
          description: >-
            A label combining sequence number with descriptive text (e.g., "Unit
            1", "Chapter 2")
        groupName:
          type: string
          description: The type of grouping (e.g., "unit", "section", "module", "chapter")
        groupLevel:
          type: integer
          description: >-
            The nesting level of this grouping (0 = top level, 1 = nested once,
            etc.)
        position:
          type: integer
          description: The position of this grouping within its parent
        academicSubject:
          type: string
          description: The academic subject
        gradeLevel:
          type: array
          items:
            type: string
          description: Specifies the educational grades for which the grouping is intended
        author:
          type: string
          description: The author of the lesson grouping
        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 grouping
        audience:
          type: array
          items:
            type: string
          description: Specifies the intended audience for the lesson grouping
        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 lesson grouping
        isOptional:
          type: boolean
          description: Whether the lesson grouping is optional to complete
        courseCode:
          type: string
          description: The identifier for the course used by the course provider
        publisherIdentifier:
          type: string
          nullable: true
          description: The identifier assigned to this resource by its publisher
        timeRequired:
          type: string
          description: >-
            Approximate or typical time it usually takes to work with or through
            the lesson grouping (ISO 8601 duration format)
        dateCreated:
          type: string
          format: date
          description: The date on which the lesson grouping was created
        attributionStatement:
          type: string
          description: A human-readable attribution statement for this lesson grouping
        children:
          type: array
          description: Nested lesson groupings within this grouping
          items:
            $ref: '#/components/schemas/LessonGroupingNodeFull'
        lessons:
          type: array
          description: Lessons within this grouping
          items:
            $ref: '#/components/schemas/LessonNodeFull'
    LessonNode:
      type: object
      description: A lesson node in the course hierarchy for summary view (minimal fields)
      required:
        - identifier
        - name
        - position
      properties:
        identifier:
          type: string
          description: The unique identifier of the lesson
        name:
          type: string
          description: The name of the lesson
        ordinalName:
          type: string
          description: >-
            A label combining sequence number with descriptive text (e.g.,
            "Lesson 1")
        position:
          type: integer
          description: The position of this lesson within its parent grouping
    LessonNodeFull:
      type: object
      description: >-
        A lesson node in the course hierarchy for full view (all metadata
        fields)
      required:
        - identifier
        - name
        - position
      properties:
        identifier:
          type: string
          description: The unique identifier of the lesson
        name:
          type: string
          description: The name of the lesson
        ordinalName:
          type: string
          description: >-
            A label combining sequence number with descriptive text (e.g.,
            "Lesson 1")
        position:
          type: integer
          description: The position of this lesson within its parent grouping
        academicSubject:
          type: string
          description: The academic subject
        gradeLevel:
          type: array
          items:
            type: string
          description: Specifies the educational grades for which the lesson is intended
        author:
          type: string
          description: The author of the lesson
        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 lesson
        audience:
          type: array
          items:
            type: string
          description: Specifies the intended audience for the lesson
        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 lesson
        isOptional:
          type: boolean
          description: Whether the lesson is optional to complete
        courseCode:
          type: string
          description: The identifier for the course used by the course provider
        publisherIdentifier:
          type: string
          nullable: true
          description: The identifier assigned to this resource by its publisher
        timeRequired:
          type: string
          description: >-
            Approximate or typical time it usually takes to work with or through
            the content (ISO 8601 duration format)
        dateCreated:
          type: string
          format: date
          description: The date on which the lesson was created
        attributionStatement:
          type: string
          description: A human-readable attribution statement for this lesson
  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.

````