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
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:
  /standards-frameworks:
    get:
      summary: Standards frameworks
      description: |
        Fetches a list of StandardsFramework objects representing complete academic standards documents. Each standards framework represents a complete standards document published by an official body like a state department of education.
        This endpoint allows you to discover available standards frameworks and retrieve metadata about standards documents from different jurisdictions, subjects, and adoption statuses.

        Use this endpoint when you need to:
        - Discover available standards frameworks to query academic standards from
        - Find standards framework UUIDs needed for the GET /academic-standards endpoint
        - Browse standards frameworks by subject, jurisdiction, or adoption status
        - Get standards framework metadata (title, adoption status, modification dates)

        **Related topics:**
        - [Understanding StandardsFramework vs StandardsFrameworkItem](/knowledge-graph/schema-reference/standards)
        - [Framework adoption statuses](/knowledge-graph/schema-reference/enums-and-formats#adoptionstatusenum)
      operationId: listFrameworks
      tags:
        - Academic Standards
      parameters:
        - $ref: "#/components/parameters/JurisdictionParam"
        - $ref: "#/components/parameters/AcademicSubjectParam"
        - name: adoptionStatus
          in: query
          required: false
          schema:
            $ref: "#/components/schemas/AdoptionStatusENUM"
        - $ref: "#/components/parameters/IncludeNonCurrentParam"
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of standards frameworks
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/StandardsFramework"
              example:
                data:
                  - identifier: "00bcc689-c7a6-5ef4-ac09-c868f9e25a06"
                    caseIdentifierURI: "https://satchelcommons.com/ims/case/v1p0/CFDocuments/822e5a6e-bcb0-45b8-bb82-a2c88d5b4bb7"
                    caseIdentifierUUID: "822e5a6e-bcb0-45b8-bb82-a2c88d5b4bb7"
                    name: "K-12 New Hampshire Social Studies Curriculum Framework"
                    description: null
                    jurisdiction: "New Hampshire"
                    academicSubject: "Social Studies"
                    inLanguage: "en-US"
                    adoptionStatus: "Implemented"
                    dateCreated: null
                    dateModified: "2023-11-19"
                    notes: null
                    author: "1EdTech"
                    provider: "Learning Commons"
                    license: "https://creativecommons.org/licenses/by/4.0/"
                    attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received state standards and written permission under CC BY-4.0 from 1EdTech."
                    isCurrent: true
                  - identifier: "02575dee-30d0-50fd-b0e6-182da76f63a5"
                    caseIdentifierURI: "https://satchelcommons.com/ims/case/v1p0/CFDocuments/50a88167-d6f5-41ea-a6c1-ee1ea83b6820"
                    caseIdentifierUUID: "50a88167-d6f5-41ea-a6c1-ee1ea83b6820"
                    name: "North Carolina Standard Course of Study: Social Studies"
                    description: null
                    jurisdiction: "North Carolina"
                    academicSubject: "Social Studies"
                    inLanguage: "en-US"
                    adoptionStatus: "Implemented"
                    dateCreated: null
                    dateModified: "2024-04-08"
                    notes: null
                    author: "1EdTech"
                    provider: "Learning Commons"
                    license: "https://creativecommons.org/licenses/by/4.0/"
                    attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received state standards and written permission under CC BY-4.0 from 1EdTech."
                    isCurrent: true
                pagination:
                  limit: 100
                  nextCursor: "eyJpZGVudGlmaWVyIjogIjczYTJhNWY5LWRjOGUtNWE3Yi1iMzc4LTYzZGNmOWViZjFiNSJ9"
                  hasMore: true
        "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 parameter values (e.g., enum value not in allowed list)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: "Input should be 'Draft', 'Proposed', 'Adopted', 'Implemented', or 'Retired'"
                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 standards frameworks
                requestId: req_12345
  /academic-standards/{caseIdentifierUUID}:
    get:
      summary: Standard by ID
      description: |
        Fetches a single `StandardsFrameworkItem` by its CASE Network UUID.

        A `StandardsFrameworkItem` represents an individual statement or structural element within a standards framework. These items can be normative statements that specify what students should know or be able to do (e.g., "Describe the impact of a transformation matrix on a graphical object"), or organizational groupings that structure the framework (e.g., domains, strands, clusters).

        Use this endpoint when you need to:
        - Display the full details of a specific academic standard in your application
        - Retrieve the exact statement text, grade levels, and classification for a known academic standard
        - Trace an academic standard back to its source in the CASE Network via the CASE identifiers

        The response includes the statement text, grade level(s), subject area, jurisdiction, and all source attribution required by the CC BY 4.0 license.

        **Related topics:**
        - [Understanding StandardsFrameworkItem vs StandardsFramework](/knowledge-graph/schema-reference/standards)
        - [Standard classification types](/knowledge-graph/schema-reference/enums-and-formats#normalizedstatementtypeenum)
      operationId: getAcademicStandardByCaseIdentifierUUID
      tags:
        - Academic Standards
      parameters:
        - $ref: "#/components/parameters/CaseIdentifierUUIDPath"
      responses:
        "200":
          description: Successfully retrieved the standard
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StandardsFrameworkItem"
              example:
                identifier: "b15d0fc6-94b7-5bae-9e62-2c30813b4c0f"
                caseIdentifierURI: "https://satchelcommons.com/ims/case/v1p0/CFItems/6b9ee241-d7cc-11e8-824f-0242ac160002"
                caseIdentifierUUID: "6b9ee241-d7cc-11e8-824f-0242ac160002"
                name: null
                statementCode: "6.NS.B.4"
                description: "Find the greatest common factor of two whole numbers less than or equal to 100 and the least common multiple of two whole numbers less than or equal to 12. Use the distributive property to express a sum of two whole numbers 1—100 with a common factor as a multiple of a sum of two whole numbers with no common factor. *For example, express $36 + 8$ as $4(9 + 2)$.*"
                statementType: "Standard"
                normalizedStatementType: "Standard"
                jurisdiction: "Multi-State"
                academicSubject: "Mathematics"
                gradeLevel:
                  - "6"
                inLanguage: "en-US"
                dateCreated: null
                dateModified: "2025-02-05"
                notes: null
                author: "1EdTech"
                provider: "Learning Commons"
                license: "https://creativecommons.org/licenses/by/4.0/"
                attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received state standards and written permission under CC BY-4.0 from 1EdTech."
                hasChildren: false
        "400":
          description: Bad request - Invalid CASE Network UUID format
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: Invalid CASE Network UUID (valid format looks like "6bd8552e-6f8f-4538-bf33-d016ac080178")
                requestId: req_12345
        "404":
          description: Academic standard not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: NotFoundError
                message: Academic standard with CASE Network UUID "6bd8552e-6f8f-4538-bf33-d016ac080178" not found. Verify the UUID is correct.
                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 the academic standard
                requestId: req_12345
  /academic-standards:
    get:
      summary: Standards in a framework
      description: |
        Fetches a list of StandardsFrameworkItems for a specific standards framework.

        This endpoint retrieves academic standards from a single standards framework identified by its CASE Network UUID. You can further filter the results by grade level or classification type. This is useful when you need to work with academic standards from a specific state or jurisdiction.

        Use this endpoint when you need to:
        - Get all academic standards within a specific standards framework
        - Find academic standards for a particular grade level within a standards framework
        - Filter academic standards by subject area (e.g., only Mathematics academic standards)
        - Filter academic standards by their normalized classification (e.g., only instructional academic standards, not organizational groupings)
        - Retrieve a subset of a standards framework's academic standards for display or processing

        The endpoint returns paginated results. Use the `limit` and `cursor` parameters to control the number of results returned and navigate through large result sets.

        **Related topics:**
        - [Understanding StandardsFrameworkItem classifications](/knowledge-graph/schema-reference/enums-and-formats#normalizedstatementtypeenum)
      operationId: listAcademicStandards
      tags:
        - Academic Standards
      parameters:
        - name: standardsFrameworkCaseIdentifierUUID
          in: query
          required: true
          description: CASE Network UUID for the resource
          schema:
            type: string
            format: uuid
        - $ref: "#/components/parameters/GradeLevelParam"
        - $ref: "#/components/parameters/AcademicSubjectParam"
        - name: normalizedStatementType
          in: query
          required: false
          schema:
            $ref: "#/components/schemas/NormalizedStatementTypeENUM"
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of standards
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/StandardsFrameworkItem"
              example:
                data:
                  - identifier: "8e73cea8-f61d-5ac4-bcef-a84a331618d6"
                    caseIdentifierURI: "https://satchelcommons.com/ims/case/v1p0/CFItems/65b82d75-d7cc-11e8-824f-0242ac160002"
                    caseIdentifierUUID: "65b82d75-d7cc-11e8-824f-0242ac160002"
                    name: null
                    statementCode: null
                    description: "Standards for Mathematical Practice"
                    statementType: null
                    normalizedStatementType: null
                    jurisdiction: "Vermont"
                    academicSubject: "Mathematics"
                    gradeLevel:
                      - "K"
                      - "1"
                      - "2"
                      - "3"
                      - "4"
                      - "5"
                      - "6"
                      - "7"
                      - "8"
                      - "9"
                      - "10"
                      - "11"
                      - "12"
                    inLanguage: "en-US"
                    dateCreated: null
                    dateModified: "2023-11-19"
                    notes: null
                    author: "1EdTech"
                    provider: "Learning Commons"
                    license: "https://creativecommons.org/licenses/by/4.0/"
                    attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received state standards and written permission under CC BY-4.0 from 1EdTech."
                    hasChildren: true
                pagination:
                  limit: 1
                  nextCursor: "eyJpZGVudGlmaWVyIjogIjhlNzNjZWE4LWY2MWQtNWFjNC1iY2VmLWE4NGEzMzE2MThkNiJ9"
                  hasMore: true
        "400":
          description: Bad request - Missing required parameter or using invalid filter values
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: "Missing required parameter: standardsFrameworkCaseIdentifierUUID. Example: ?standardsFrameworkCaseIdentifierUUID=c6493f4d-d7cb-11e8-824f-0242ac160002"
                requestId: req_12345
        "422":
          description: Unprocessable Entity - Invalid parameter values (e.g., enum value not in allowed list)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: "Input should be 'Standard', 'Standard Grouping', or 'Other'"
                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 academic standards
                requestId: req_12345
  /academic-standards/search:
    get:
      summary: Search standards
      description: |
        Searches for StandardsFrameworkItems using either semantic search or exact statement code match across all standards frameworks.

        This endpoint supports two mutually exclusive search modes:

        - **Semantic search** (`query`): Full-text semantic search against the standard's description. Results are ranked by relevance and include a `score` reflecting vector similarity.
        - **Code search** (`statementCode`): Exact statement code match (e.g., "3.NF.A.1"). Case-insensitive, no partial matching. All results carry a `score` of 1.0.

        **Exactly one of `query` or `statementCode` must be provided.** Providing both or neither returns a 400 error.

        Results can be narrowed further using the optional filters and support cursor-based pagination.

        Use this endpoint when you need to:
        - Find academic standards relevant to a concept or learning goal (semantic search)
        - Look up an academic standard by its exact statement code
        - Find all standards frameworks that include a specific statement code
        - Filter search results by grade level, subject, or statement type

        **Note:** Not all academic standards have statement codes - some organizational groupings may have null codes and won't appear in code search results.

        **Related topics:**
        - [Understanding statement codes](/knowledge-graph/schema-reference/standards#standardsframeworkitem)
      operationId: searchAcademicStandards
      tags:
        - Academic Standards
        - Search
      parameters:
        - name: query
          in: query
          required: false
          description: Free-text query for semantic search against academic standard descriptions (cannot be used with `statementCode`)
          schema:
            type: string
            maxLength: 500
        - name: statementCode
          in: query
          required: false
          description: Statement code used for case-insensitive exact match – e.g., "3.NF.A.1" matches "3.nf.a.1" (cannot be used with `query`)
          schema:
            type: string
            maxLength: 50
        - $ref: "#/components/parameters/GradeLevelParam"
        - name: academicSubject
          in: query
          required: false
          schema:
            $ref: "#/components/schemas/AcademicSubjectENUM"
        - name: normalizedStatementType
          in: query
          required: false
          schema:
            $ref: "#/components/schemas/NormalizedStatementTypeENUM"
        - name: jurisdiction
          in: query
          required: false
          schema:
            $ref: "#/components/schemas/JurisdictionENUM"
            default: Multi-State
        - name: limit
          in: query
          required: false
          description: Maximum number of results to return
          schema:
            type: integer
            minimum: 1
            maximum: 50
            default: 5
      responses:
        "200":
          description: Successfully retrieved search results (ranked by relevance)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AcademicStandardSearchResult"
              example:
                - caseIdentifierUUID: "fa29b90a-2795-4bf5-b6bc-3ac4a695e9e2"
                  statementCode: "6.NS.B.4"
                  description: "Find the greatest common factor of two whole numbers less than or equal to 100 and the least common multiple of two whole numbers less than or equal to 12."
                  jurisdiction: "Washington, D.C."
                  author: "1EdTech"
                  provider: "Learning Commons"
                  license: "https://creativecommons.org/licenses/by/4.0/"
                  attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license."
                  score: 0.92
                - caseIdentifierUUID: "61b03523-d7cc-11e8-824f-0242ac160002"
                  statementCode: "6.NS.B.4"
                  description: "Find the greatest common factor of two whole numbers less than or equal to 100 and the least common multiple of two whole numbers less than or equal to 12."
                  jurisdiction: "Maryland"
                  author: "1EdTech"
                  provider: "Learning Commons"
                  license: "https://creativecommons.org/licenses/by/4.0/"
                  attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license."
                  score: 0.87
        "400":
          description: Bad request - exactly one of query or statementCode must be provided
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: "Exactly one of query or statementCode must be provided. Example: ?query=greatest+common+factor or ?statementCode=3.NF.A.1"
                requestId: req_12345
        "422":
          description: Unprocessable Entity - Invalid parameter values (e.g., enum value not in allowed list)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: "Input should be 'Alabama', 'Alaska', ..., or 'Multi-State'"
                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 searching for academic standards
                requestId: req_12345
  /academic-standards/{caseIdentifierUUID}/children:
    get:
      summary: Children of a standard
      description: |
        Fetches StandardsFrameworkItems that are direct children of the specified academic standard through the "hasChild" relationship.

        This endpoint retrieves academic standards that are hierarchically organized under the given academic standard. This allows you to navigate down the standards framework hierarchy from domains to clusters to individual academic standards, or from any parent grouping to its children.

        Use this endpoint when you need to:
        - Navigate down the standards framework hierarchy (e.g., from domain to academic standards)
        - Get all academic standards within a specific grouping or cluster
        - Build tree visualizations of standards framework structures
        - Explore the organizational structure of a standards document

        **Note:** This returns direct children only, not all descendants. To get all descendants, you'll need to traverse multiple levels.

        The endpoint returns paginated results. Use the `limit` and `cursor` parameters to control the number of results returned.

        **Related topics:**
        - [Understanding the hasChild relationship](/knowledge-graph/schema-reference/standards#haschild)
      operationId: listChildAcademicStandards
      tags:
        - Academic Standards
        - Hierarchy
      parameters:
        - $ref: "#/components/parameters/CaseIdentifierUUIDPath"
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of child standards
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/StandardsFrameworkItemSummary"
              example:
                data:
                  - identifier: "3a650f7a-3b10-55d0-9d07-c2bdf8e08175"
                    caseIdentifierURI: "https://satchelcommons.com/ims/case/v1p0/CFItems/6b9c2b26-d7cc-11e8-824f-0242ac160002"
                    caseIdentifierUUID: "6b9c2b26-d7cc-11e8-824f-0242ac160002"
                    name: null
                    statementCode: "6.RP.A.1"
                    description: "Understand the concept of a ratio and use ratio language to describe a ratio relationship between two quantities. *For example, \"The ratio of wings to beaks in the bird house at the zoo was 2:1, because for every 2 wings there was 1 beak.\" \"For every vote candidate A received, candidate C received nearly three votes.\"*"
                    statementType: "Standard"
                    normalizedStatementType: "Standard"
                    jurisdiction: "Multi-State"
                    academicSubject: "Mathematics"
                    gradeLevel:
                      - "6"
                    inLanguage: "en-US"
                    dateCreated: null
                    dateModified: "2025-02-05"
                    notes: null
                    author: "1EdTech"
                    provider: "Learning Commons"
                    license: "https://creativecommons.org/licenses/by/4.0/"
                    attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received state standards and written permission under CC BY-4.0 from 1EdTech."
                    hasChildren: false
                  - identifier: "c3126032-2984-5b67-9ed5-2f2f0821e99f"
                    caseIdentifierURI: "https://satchelcommons.com/ims/case/v1p0/CFItems/6b9d6aa3-d7cc-11e8-824f-0242ac160002"
                    caseIdentifierUUID: "6b9d6aa3-d7cc-11e8-824f-0242ac160002"
                    name: null
                    statementCode: "6.RP.A.2"
                    description: "Understand the concept of a unit rate $\\frac{a}{b}$ associated with a ratio a:b with $b \\neq 0$, and use rate language in the context of a ratio relationship."
                    statementType: "Standard"
                    normalizedStatementType: "Standard"
                    jurisdiction: "Multi-State"
                    academicSubject: "Mathematics"
                    gradeLevel:
                      - "6"
                    inLanguage: "en-US"
                    dateCreated: null
                    dateModified: "2025-02-05"
                    notes: "Expectations for unit rates in this grade are limited to non-complex fractions."
                    author: "1EdTech"
                    provider: "Learning Commons"
                    license: "https://creativecommons.org/licenses/by/4.0/"
                    attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received state standards and written permission under CC BY-4.0 from 1EdTech."
                    hasChildren: false
                pagination:
                  limit: 2
                  nextCursor: "eyJpZGVudGlmaWVyIjogImMzMTI2MDMyLTI5ODQtNWI2Ny05ZWQ1LTJmMmYwODIxZTk5ZiJ9"
                  hasMore: true
        "400":
          description: Bad request - Invalid CASE Network UUID or pagination parameters
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: "Invalid pagination parameter. Limit must be between 1 and 1000 (e.g., limit=100). Cursor must be a valid base64-encoded string from a previous response."
                requestId: req_12345
        "404":
          description: Academic standard not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: NotFoundError
                message: Academic standard with CASE Network UUID "6bd8552e-6f8f-4538-bf33-d016ac080178" not found. Verify the UUID is correct.
                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 child standards
                requestId: req_12345
  /academic-standards/{caseIdentifierUUID}/prerequisites:
    get:
      summary: Prerequisites for a standard
      description: |
        Fetches the prerequisite StandardsFrameworkItems for the specified academic standard - the foundational standards it builds **from** via the "buildsTowards" relationship.

        These are the foundational skills or concepts that contribute to mastery of the given academic standard (each prerequisite `buildsTowards` the given standard). The relationship is directional but does not require strict prerequisite order - students don't need to fully master prerequisites before engaging with the given academic standard.

        Use this endpoint when you need to:
        - Identify foundational academic standards students should be familiar with before tackling a target academic standard
        - Trace backward through a learning progression to understand dependencies
        - Design remediation or review activities based on prerequisite skills
        - Map out a coherent learning pathway for students

        **Note:** Learning progression data is currently based on Student Achievement Partners' Coherence Map for Common Core State Standards (CCSS) for Mathematics. Coverage for other subjects and frameworks may be limited.

        The endpoint returns paginated results. Use the `limit` and `cursor` parameters to control the number of results returned.

        **Related topics:**
        - [Understanding the buildsTowards relationship](/knowledge-graph/schema-reference/learning-progressions#buildstowards)
      operationId: listPrerequisiteAcademicStandards
      tags:
        - Academic Standards
        - Learning Progressions
      parameters:
        - $ref: "#/components/parameters/CaseIdentifierUUIDPath"
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of prerequisite standards
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/StandardsFrameworkItemSummary"
              example:
                data:
                  - caseIdentifierUUID: "6b9ee241-d7cc-11e8-824f-0242ac160002"
                    statementCode: "5.OA.A.2"
                    description: "Write simple expressions that record calculations with numbers, and interpret numerical expressions without evaluating them. *For example, express the calculation \"add 8 and 7, then multiply by 2\" as $2 \\times (8 + 7)$. Recognize that $3 \\times (18932 + 921)$ is three times as large as 18932 + 921, without having to calculate the indicated sum or product.*"
                    author: "1EdTech"
                    provider: "Learning Commons"
                    license: "https://creativecommons.org/licenses/by/4.0/"
                    attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received state standards and written permission under CC BY-4.0 from 1EdTech."
                  - caseIdentifierUUID: "6b9ed00e-d7cc-11e8-824f-0242ac160002"
                    statementCode: "4.OA.B.4"
                    description: "Find all factor pairs for a whole number in the range 1—100. Recognize that a whole number is a multiple of each of its factors. Determine whether a given whole number in the range 1—100 is a multiple of a given one-digit number. Determine whether a given whole number in the range 1—100 is prime or composite."
                    author: "1EdTech"
                    provider: "Learning Commons"
                    license: "https://creativecommons.org/licenses/by/4.0/"
                    attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received state standards and written permission under CC BY-4.0 from 1EdTech."
                pagination:
                  limit: 100
                  nextCursor: null
                  hasMore: false
        "400":
          description: Bad request - Invalid CASE Network UUID or pagination parameters
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: Invalid CASE Network UUID format. Must be a valid UUID (e.g., "6bd8552e-6f8f-4538-bf33-d016ac080178").
                requestId: req_12345
        "404":
          description: Academic standard not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: NotFoundError
                message: Academic standard with CASE Network UUID "6bd8552e-6f8f-4538-bf33-d016ac080178" not found. Verify the UUID is correct.
                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 prerequisite standards
                requestId: req_12345
  /academic-standards/{caseIdentifierUUID}/builds-towards:
    get:
      summary: Standards a standard builds towards
      description: |
        Fetches the StandardsFrameworkItems that the specified academic standard builds **towards** via the "buildsTowards" relationship - the standards it is a prerequisite of.

        These are the next logical learning steps or more advanced concepts that students can progress to after working with the given academic standard (the given standard `buildsTowards` each of them). Proficiency in the given academic standard supports the likelihood of success in these standards.

        Use this endpoint when you need to:
        - Identify next steps in a learning progression after students master an academic standard
        - Design curriculum sequences that build on foundational skills
        - Map forward through learning pathways to understand where academic standards lead
        - Plan long-term instructional trajectories for students

        **Note:** Learning progression data is currently based on Student Achievement Partners' Coherence Map for Common Core State Standards (CCSS) for Mathematics. Coverage for other subjects and frameworks may be limited.

        The endpoint returns paginated results. Use the `limit` and `cursor` parameters to control the number of results returned.

        **Related topics:**
        - [Understanding the buildsTowards relationship](/knowledge-graph/schema-reference/learning-progressions#buildstowards)
      operationId: listBuildsTowardsAcademicStandards
      tags:
        - Academic Standards
        - Learning Progressions
      parameters:
        - $ref: "#/components/parameters/CaseIdentifierUUIDPath"
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of standards this standard builds towards
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/StandardsFrameworkItemSummary"
              example:
                data:
                  - caseIdentifierUUID: "6b9e3b67-d7cc-11e8-824f-0242ac160002"
                    statementCode: "6.EE.A.3"
                    description: "Apply the properties of operations to generate equivalent expressions. *For example, apply the distributive property to the expression $3(2 + x)$ to produce the equivalent expression 6 + 3x; apply the distributive property to the expression 24x + 18y to produce the equivalent expression $6(4x + 3y)$; apply properties of operations to y + y + y to produce the equivalent expression 3y.*"
                    author: "1EdTech"
                    provider: "Learning Commons"
                    license: "https://creativecommons.org/licenses/by/4.0/"
                    attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received state standards and written permission under CC BY-4.0 from 1EdTech."
                  - caseIdentifierUUID: "6b9edd45-d7cc-11e8-824f-0242ac160002"
                    statementCode: "6.EE.A.4"
                    description: "Identify when two expressions are equivalent (i.e., when the two expressions name the same number regardless of which value is substituted into them). *For example, the expressions y + y + y and 3y are equivalent because they name the same number regardless of which number y stands for.*"
                    author: "1EdTech"
                    provider: "Learning Commons"
                    license: "https://creativecommons.org/licenses/by/4.0/"
                    attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received state standards and written permission under CC BY-4.0 from 1EdTech."
                pagination:
                  limit: 100
                  nextCursor: null
                  hasMore: false
        "400":
          description: Bad request - Invalid CASE Network UUID or pagination parameters
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: Invalid CASE Network UUID format. Must be a valid UUID (e.g., "6bd8552e-6f8f-4538-bf33-d016ac080178").
                requestId: req_12345
        "404":
          description: Academic standard not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: NotFoundError
                message: Academic standard with CASE Network UUID "6bd8552e-6f8f-4538-bf33-d016ac080178" not found. Verify the UUID is correct.
                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 standards this standard builds towards
                requestId: req_12345
  /academic-standards/{caseIdentifierUUID}/related-standards:
    get:
      summary: Related standards for a standard
      description: |
        Fetches StandardsFrameworkItems that are related to the specified academic standard through the "relatesTo" relationship.

        This endpoint retrieves academic standards that share meaningful conceptual or skill-based links with the given academic standard, without implying a specific sequence or prerequisite order. These lateral connections highlight associations that can inform instructional design, identify reinforcing concepts, or reveal thematic links across academic standards.

        Use this endpoint when you need to:
        - Find academic standards with related content or skills for integrated instruction
        - Identify opportunities for reinforcing concepts across different academic standards
        - Design cross-curricular or thematic units that connect related academic standards
        - Discover alternative pathways or parallel concepts in curriculum planning

        **Note:** Learning progression data is currently based on Student Achievement Partners' Coherence Map for Common Core State Standards (CCSS) for Mathematics. Coverage for other subjects and frameworks may be limited.

        The endpoint returns paginated results. Use the `limit` and `cursor` parameters to control the number of results returned.

        **Related topics:**
        - [Understanding the relatesTo relationship](/knowledge-graph/schema-reference/learning-progressions#relatesto)
      operationId: listRelatedAcademicStandards
      tags:
        - Academic Standards
        - Learning Progressions
      parameters:
        - $ref: "#/components/parameters/CaseIdentifierUUIDPath"
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of related standards
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/StandardsFrameworkItemSummary"
              example:
                data:
                  - caseIdentifierUUID: "6ba0feac-d7cc-11e8-824f-0242ac160002"
                    statementCode: "5.NF.B.7"
                    description: "Apply and extend previous understandings of division to divide unit fractions"
                  - caseIdentifierUUID: "6ba0e123-d7cc-11e8-824f-0242ac160002"
                    statementCode: "5.NF.B.6"
                    description: "Solve real world problems involving multiplication of fractions"
                  - caseIdentifierUUID: "6ba0c456-d7cc-11e8-824f-0242ac160002"
                    statementCode: "5.NF.B.5"
                    description: "Interpret multiplication as scaling (resizing)"
                  - caseIdentifierUUID: "6ba0a789-d7cc-11e8-824f-0242ac160002"
                    statementCode: "5.NF.B.4"
                    description: "Apply and extend previous understandings of multiplication to multiply a fraction by a whole number"
                pagination:
                  limit: 100
                  nextCursor: "eyJpZGVudGlmaWVyIjoiNWI3ZjE4ZmUtYmQxNC01NDI3LThkMzUtNWQzNGMzYjhmMTBmIn0="
                  hasMore: true
        "400":
          description: Bad request - Invalid CASE Network UUID or pagination parameters
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: Invalid CASE Network UUID format. Must be a valid UUID (e.g., "6bd8552e-6f8f-4538-bf33-d016ac080178").
                requestId: req_12345
        "404":
          description: Academic standard not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: NotFoundError
                message: Academic standard with CASE Network UUID "6bd8552e-6f8f-4538-bf33-d016ac080178" not found. Verify the UUID is correct.
                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 related standards
                requestId: req_12345
  /academic-standards/{caseIdentifierUUID}/learning-components:
    get:
      summary: Learning components for a standard
      description: |
        Fetches a list of LearningComponents that support a specific StandardsFrameworkItem.

        This endpoint retrieves all learning components that are aligned to a given academic standard through the "supports" relationship. Learning components break down broad academic standards into granular, teachable skills, making them actionable for lesson planning and assessment design.

        Use this endpoint when you need to:
        - Find the specific skills that compose a given academic standard
        - Identify granular learning targets for instruction aligned to an academic standard
        - Map learning components to your curriculum or assessment items
        - Understand how a broad academic standard breaks down into teachable units

        **Note:** Learning component alignments are currently available primarily for Mathematics academic standards. Academic standards in other subjects or certain special categories (e.g., Standards for Mathematical Practice, Pre-K, advanced math) may not have LC alignments.

        The endpoint returns paginated results. Use the `limit` and `cursor` parameters to control the number of results returned.

        **Related topics:**
        - [Understanding the supports relationship](/knowledge-graph/schema-reference/learning-components#supports)
        - [LC alignment methodology](/knowledge-graph/schema-reference/learning-components#creation-of-lcs)
        - [Available LC coverage by state](/knowledge-graph/schema-reference/learning-components#current-lc-mappings)
      operationId: listLearningComponentsByAcademicStandard
      tags:
        - Learning Components
        - Academic Standards
      parameters:
        - $ref: "#/components/parameters/CaseIdentifierUUIDPath"
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of learning components supporting this standard
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/LearningComponentSummary"
              example:
                data:
                  - identifier: "926bf4b0-e045-536b-ac02-2089d77cbf6c"
                    description: "Find the least common multiple of two whole numbers less than or equal to 12"
                    author: "Achievement Network"
                    provider: "Learning Commons"
                    license: "https://creativecommons.org/licenses/by/4.0/"
                    attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received learning components under CC BY-4.0 from Achievement Network."
                  - identifier: "9bf54462-5fd0-59bf-8360-cd503e45b884"
                    description: "Find the greatest common factor of two whole numbers less than or equal to 100"
                    author: "Achievement Network"
                    provider: "Learning Commons"
                    license: "https://creativecommons.org/licenses/by/4.0/"
                    attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received learning components under CC BY-4.0 from Achievement Network."
                  - identifier: "c587f727-0135-571c-8c60-7ad46e0a28c5"
                    description: "Use the distributive property to express a sum of two whole numbers 1-100 with a common factor as a multiple of a sum of two whole numbers with no common factor"
                    author: "Achievement Network"
                    provider: "Learning Commons"
                    license: "https://creativecommons.org/licenses/by/4.0/"
                    attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received learning components under CC BY-4.0 from Achievement Network."
                pagination:
                  limit: 100
                  nextCursor: null
                  hasMore: false
        "400":
          description: Bad request - Invalid CASE Network UUID or pagination parameters
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: Invalid CASE Network UUID format. Must be a valid UUID (e.g., "6bd8552e-6f8f-4538-bf33-d016ac080178").
                requestId: req_12345
        "404":
          description: Academic standard not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: NotFoundError
                message: Academic standard with CASE Network UUID "6bd8552e-6f8f-4538-bf33-d016ac080178" not found. Verify the UUID is correct.
                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 learning components
                requestId: req_12345
  /academic-standards/{caseIdentifierUUID}/crosswalks:
    get:
      summary: Crosswalks for a standard
      description: |
        Fetches a list of standards that align to a specific standard through shared Learning Components.

        This endpoint retrieves crosswalk relationships bidirectionally:
        - **State standard → CCSS**: Pass in a state standard to get matching Common Core State Standards (CCSS)
        - **CCSS → State standards**: Pass in a Common Core State Standards (CCSS) standard to get matching state standards across jurisdictions

        Each crosswalk includes similarity metrics based on measurable overlap of Learning Components to help understand the strength and nature of the alignment.

        Crosswalks provide a scalable way to extend mappings between CCSS and state-specific frameworks without independent matching logic. By leveraging the LC superset, crosswalks show where standards converge in content coverage.

        Use this endpoint when you need to:
        - Find Common Core State Standards (CCSS) standards that align to a state standard for content adaptation
        - Find state standards that align to a Common Core State Standards (CCSS) standard across multiple jurisdictions
        - Understand the similarity between standards
        - Map content between Common Core and state frameworks
        - Analyze the degree of overlap between standards

        **Note:** Crosswalks are currently available only for Mathematics standards in states where LC alignment exists. Crosswalks are evidence-based (require at least one shared LC).

        The endpoint returns paginated results. Use the `limit` and `cursor` parameters to control the number of results returned.

        **Related topics:**
        - [Standards crosswalks methodology](/knowledge-graph/schema-reference/standards#understanding-the-jaccard-index)
      operationId: listCrosswalkedStandards
      tags:
        - Standards crosswalks
        - Academic Standards
      parameters:
        - $ref: "#/components/parameters/CaseIdentifierUUIDPath"
        - $ref: "#/components/parameters/JurisdictionParam"
        - name: minJaccardScore
          in: query
          required: false
          description: Minimum Jaccard score when focusing on stronger alignments
          schema:
            type: number
            format: float
            minimum: 0.0
            maximum: 1.0
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of Common Core State Standards (CCSS) standards if a state standard was provided, or a list of state standards if a CCSS standard was provided
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/StandardCrosswalk"
              examples:
                stateToCommonCore:
                  summary: State standard to Common Core State Standards (CCSS) standards (returns CCSS standards)
                  value:
                    data:
                      - caseIdentifierUUID: "0bb530f0-4b99-11ec-a64d-0242ac1a0003"
                        statementCode: "6.NS.B.4"
                        description: "Use prime factorization to find the greatest common factor of two whole numbers less than or equal to 100 and the least common multiple of two whole numbers less than or equal to 12. Use the distributive property to express a sum of two whole numbers 1–100 with a common factor as a multiple of a sum of two relatively prime numbers. For example, express 36 + 8 as 4(9 + 2)."
                        jurisdiction: "Rhode Island"
                        jaccard: 1.0
                        stateLCCount: 3
                        ccssLCCount: 3
                        sharedLCCount: 3
                        author: "1EdTech"
                        provider: "Learning Commons"
                        license: "https://creativecommons.org/licenses/by/4.0/"
                        attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received state standards and written permission under CC BY-4.0 from 1EdTech."
                      - caseIdentifierUUID: "16674743-eb8f-11e9-9f9f-0242ac140002"
                        statementCode: "6.NS.B.4"
                        description: "Find the greatest common factor of two whole numbers less than or equal to 100 and the least common multiple of two whole numbers less than or equal to 12. Use the distributive property to express a sum of two whole numbers 1–100 with a common factor as a multiple of a sum of two whole numbers with no common factor. *For example, express 36 + 8 as 4(9 + 2).*"
                        jurisdiction: "Colorado"
                        jaccard: 1.0
                        stateLCCount: 3
                        ccssLCCount: 3
                        sharedLCCount: 3
                        author: "1EdTech"
                        provider: "Learning Commons"
                        license: "https://creativecommons.org/licenses/by/4.0/"
                        attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received state standards and written permission under CC BY-4.0 from 1EdTech."
                    pagination:
                      limit: 100
                      nextCursor: null
                      hasMore: false
                commonCoreToState:
                  summary: Common Core State Standards (CCSS) standards to state standards (returns state standards)
                  value:
                    data:
                      - caseIdentifierUUID: "7cd13b29-605b-3c35-8b10-082008a56b05"
                        statementCode: "3.NF.A.1"
                        description: "Understand a fraction 1/b as the quantity formed by 1 part when a whole is partitioned into b equal parts"
                        jurisdiction: "Iowa"
                        jaccard: 0.95
                        stateLCCount: 7
                        ccssLCCount: 7
                        sharedLCCount: 7
                      - caseIdentifierUUID: "8de24c3a-716c-4d46-9c21-193119b67c16"
                        statementCode: "MA.3.NF.1"
                        description: "Understand a fraction 1/b as the quantity formed by 1 part when a whole is partitioned into b equal parts"
                        jurisdiction: "Massachusetts"
                        jaccard: 0.92
                        stateLCCount: 8
                        ccssLCCount: 7
                        sharedLCCount: 7
                    pagination:
                      limit: 100
                      nextCursor: "eyJpZGVudGlmaWVyIjoiOGRlMjRjM2EtNzE2Yy00ZDQ2LTljMjEtMTkzMTE5YjY3YzE2In0="
                      hasMore: true
        "400":
          description: Bad request - Invalid CASE Network UUID or filter parameters
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: Invalid minJaccardScore. Must be a number between 0.0 and 1.0.
                requestId: req_12345
        "404":
          description: Academic standard not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: NotFoundError
                message: Academic standard with CASE Network UUID "6bd8552e-6f8f-4538-bf33-d016ac080178" not found. Verify the UUID is correct.
                requestId: req_12345
        "422":
          description: Unprocessable Entity - Invalid parameter values (e.g., enum value not in allowed list)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: "Input should be 'Alabama', 'Alaska', ..., or 'Multi-State'"
                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 crosswalked standards
                requestId: req_12345
  /learning-components/{identifier}:
    get:
      summary: Learning component by ID
      description: |
        Fetches a single LearningComponent by its unique identifier.

        A LearningComponent represents a single, well-defined skill or concept that students are expected to learn. Learning components are granular units of learning that break down broad state standards into teachable and measurable parts at the level of a lesson, activity, or assessment question.

        Use this endpoint when you need to:
        - Display the full details of a specific learning component
        - Retrieve the skill description and metadata for a known learning component
        - Access attribution information for learning components used in your application

        Learning components(LCs) are developed through expert-driven processes with input from experienced educators. Currently, LCs are available for mathematics standards across multiple states, with more subjects and states being added over time.

        **Related topics:**
        - [Understanding Learning Components](/knowledge-graph/schema-reference/learning-components)
        - [LC creation and alignment process](/knowledge-graph/schema-reference/learning-components#creation-of-lcs)
        - [Available LC mappings by state](/knowledge-graph/schema-reference/learning-components#current-lc-mappings)
      operationId: getLearningComponentByIdentifier
      tags:
        - Learning Components
      parameters:
        - $ref: "#/components/parameters/LearningComponentIdentifierPath"
      responses:
        "200":
          description: Successfully retrieved the learning component
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LearningComponent"
              example:
                identifier: "926bf4b0-e045-536b-ac02-2089d77cbf6c"
                description: "Find the least common multiple of two whole numbers less than or equal to 12"
                academicSubject: "Mathematics"
                inLanguage: "en-US"
                dateCreated: "2025-04-01"
                dateModified: "2025-04-01"
                author: "Achievement Network"
                provider: "Learning Commons"
                license: "https://creativecommons.org/licenses/by/4.0/"
                attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received learning components under CC BY-4.0 from Achievement Network."
        "400":
          description: Bad request - Invalid identifier format
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: Invalid identifier format. Must be a valid UUID string (e.g., "0b4a3aca-ad10-5ad3-b890-e30d7042bd5b").
                requestId: req_12345
        "404":
          description: Learning component not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: NotFoundError
                message: Learning component with identifier "0b4a3aca-ad10-5ad3-b890-e30d7042bd5b" not found. Verify the identifier or use GET /learning-components to browse available learning components.
                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 the learning component
                requestId: req_12345
  /academic-standards/{caseIdentifierUUID}/lessons:
    get:
      summary: Lessons for a standard
      description: |
        Fetches summary information for all lessons that address a specific academic standard.

        Returns lesson summaries (identifier, name, position) that are aligned to this standard, indicating which lessons in the curriculum help students achieve this learning expectation.

        Use this endpoint when you need to:
        - Find all lessons that teach a specific standard
        - Build standards-based lesson sequences
        - Track where standards are addressed across the curriculum
        - Generate standards coverage reports
      operationId: getStandardLessons
      tags:
        - Academic Standards
      parameters:
        - $ref: "#/components/parameters/CaseIdentifierUUIDPath"
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of lesson summaries
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/LessonSummary"
              example:
                data:
                  - identifier: im:2ebf72dc-53f8-557b-b804-fca624be807a
                    name: Making a Model for Data
                    ordinalName: Lesson 11
                    author: Illustrative Mathematics
                    provider: Learning Commons
                    license: https://creativecommons.org/licenses/by-nc/4.0/
                    attributionStatement: Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received the scope and sequence of the Illustrative Mathematics 360 curriculum under CC BY-4.0 from Illustrative Mathematics.
                  - identifier: im:b29e2804-6f89-5cd2-90e5-aa0b15c01343
                    name: Predicting Populations
                    ordinalName: Lesson 17
                    author: Illustrative Mathematics
                    provider: Learning Commons
                    license: https://creativecommons.org/licenses/by-nc/4.0/
                    attributionStatement: Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received the scope and sequence of the Illustrative Mathematics 360 curriculum under CC BY-4.0 from Illustrative Mathematics.
                pagination:
                  limit: 100
                  nextCursor: null
                  hasMore: false
        "404":
          description: Academic standard not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /academic-standards/{caseIdentifierUUID}/activities:
    get:
      summary: Activities for a standard
      description: |
        Fetches summary information for all activities that address a specific academic standard.

        Returns activity summaries (identifier, name, position) that are aligned to this standard, indicating which specific instructional tasks help students achieve this learning expectation.

        Use this endpoint when you need to:
        - Find all activities that teach a specific standard
        - Build standards-based activity sets
        - Track standards coverage at the activity level
        - Generate detailed standards alignment reports
      operationId: getStandardActivities
      tags:
        - Academic Standards
      parameters:
        - $ref: "#/components/parameters/CaseIdentifierUUIDPath"
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of activity summaries
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/ActivitySummary"
              example:
                data:
                  - identifier: im:98928b4e-0183-5e0e-955d-230653db7332
                    name: Water in a Tank
                    ordinalName: Activity 1
                    author: Illustrative Mathematics
                    provider: Learning Commons
                    license: https://creativecommons.org/licenses/by-nc/4.0/
                    attributionStatement: Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received the scope and sequence of the Illustrative Mathematics 360 curriculum under CC BY-4.0 from Illustrative Mathematics.
                  - identifier: im:a859c7f9-ba5c-5b2e-82e9-1b948e4ee01c
                    name: Swing Time
                    ordinalName: Activity 2
                    author: Illustrative Mathematics
                    provider: Learning Commons
                    license: https://creativecommons.org/licenses/by-nc/4.0/
                    attributionStatement: nKnowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received the scope and sequence of the Illustrative Mathematics 360 curriculum under CC BY-4.0 from Illustrative Mathematics.l
                pagination:
                  limit: 100
                  nextCursor: null
                  hasMore: false
        "404":
          description: Academic standard not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /academic-standards/{caseIdentifierUUID}/assessments:
    get:
      summary: Assessments for a standard
      description: |
        Fetches summary information for all assessments that evaluate a specific academic standard.

        Returns assessment summaries (identifier, name) that are aligned to this standard, indicating which assessments measure student achievement of this learning expectation.

        Use this endpoint when you need to:
        - Find all assessments that evaluate a specific standard
        - Build standards-based assessment systems
        - Track which standards are assessed
        - Generate assessment coverage reports
      operationId: getStandardAssessments
      tags:
        - Academic Standards
      parameters:
        - $ref: "#/components/parameters/CaseIdentifierUUIDPath"
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of assessment summaries
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/AssessmentSummary"
              example:
                data:
                  - identifier: im:5f1b43a3-a087-5f15-8e0e-b5dd3d2d3d23
                    name: End-of-Unit Assessment
                    author: Illustrative Mathematics
                    provider: Learning Commons
                    license: https://creativecommons.org/licenses/by-nc/4.0/
                    attributionStatement: Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received the scope and sequence of the Illustrative Mathematics 360 curriculum under CC BY-4.0 from Illustrative Mathematics.
                  - identifier: im:b98c7782-3cb1-5198-8ebe-aab294d9227b
                    name: End-of-Unit Assessment
                    author: Illustrative Mathematics
                    provider: Learning Commons
                    license: https://creativecommons.org/licenses/by-nc/4.0/
                    attributionStatement: Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received the scope and sequence of the Illustrative Mathematics 360 curriculum under CC BY-4.0 from Illustrative Mathematics.
                pagination:
                  limit: 100
                  nextCursor: null
                  hasMore: false
        "404":
          description: Academic standard not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /learning-components:
    get:
      summary: Learning components by subject
      description: |
        Fetches a list of LearningComponents filtered by academic subject.

        This endpoint retrieves learning components for a specific subject area. Learning components are granular skills that break down broad standards into teachable units. Learning components are available for Mathematics and English Language Arts, with additional subjects being developed.

        Use this endpoint when you need to:
        - Get all learning components available for a specific subject
        - Browse the complete set of skills/concepts for curriculum planning
        - Retrieve LCs for mapping to your own content or assessments
        - Export learning component data for analysis or integration

        The endpoint returns paginated results. Use the `limit` and `cursor` parameters to control the number of results returned and navigate through large result sets.

        **Related topics:**
        - [Understanding Learning Components](/knowledge-graph/schema-reference/learning-components)
        - [Available LC coverage by subject and state](/knowledge-graph/schema-reference/learning-components#current-lc-mappings)
      operationId: listLearningComponents
      tags:
        - Learning Components
      parameters:
        - name: academicSubject
          in: query
          required: true
          schema:
            $ref: "#/components/schemas/AcademicSubjectENUM"
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of learning components
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/LearningComponent"
              example:
                data:
                  - identifier: "0013fbee-3e76-500f-9978-42aa1a65f105"
                    description: "Use conversions to solve multi-step real-world problems"
                    academicSubject: "Mathematics"
                    inLanguage: "en-US"
                    dateCreated: "2025-04-01"
                    dateModified: "2025-04-01"
                    author: "Achievement Network"
                    provider: "Learning Commons"
                    license: "https://creativecommons.org/licenses/by/4.0/"
                    attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received learning components under CC BY-4.0 from Achievement Network."
                  - identifier: "457afeb6-6d17-5cff-8679-7b919d744bdd"
                    description: "Print uppercase \"A\""
                    academicSubject: "English Language Arts"
                    inLanguage: "en-US"
                    dateCreated: "2025-04-01"
                    dateModified: "2025-04-01"
                    author: "Achievement Network"
                    provider: "Learning Commons"
                    license: "https://creativecommons.org/licenses/by/4.0/"
                    attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received learning components under CC BY-4.0 from Achievement Network."
                pagination:
                  limit: 100
                  nextCursor: "eyJpZGVudGlmaWVyIjogIjA5OWNlY2NiLTQ3MzItNTZjMC1iZGIxLTYxZjljNmZjYmQ2NSJ9"
                  hasMore: true
        "400":
          description: Bad request - Missing required parameter or invalid values
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: "Missing required parameter: academicSubject. Example: ?academicSubject=Mathematics or ?academicSubject=English Language Arts"
                requestId: req_12345
        "422":
          description: Unprocessable Entity - Invalid parameter values (e.g., enum value not in allowed list)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: "Input should be 'English Language Arts', 'Mathematics', 'Science', 'Social Studies', or 'Other'"
                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 learning components
                requestId: req_12345
  /learning-components/search:
    get:
      summary: Search learning components
      description: |
        <Warning>This endpoint is for free-text semantic search across learning component descriptions. To retrieve learning components for a specific standard, use [Components for a standard](/api-reference/learning-components/learning-components-for-a-standard) instead.</Warning>

        Searches for LearningComponents using semantic search against learning component descriptions.

        Results are ranked by relevance to the query text and include a `score` reflecting vector similarity. Use the optional `academicSubject` filter to narrow results to a specific subject area.

        Use this endpoint when you need to:
        - Find learning components relevant to a specific skill or concept
        - Discover granular instructional targets related to a teaching goal
        - Search for LCs to map to your own content or assessments

        **Related topics:**
        - [Understanding Learning Components](/knowledge-graph/schema-reference/learning-components)
        - [Available LC coverage by subject and state](/knowledge-graph/schema-reference/learning-components#current-lc-mappings)
      operationId: searchLearningComponents
      tags:
        - Learning Components
        - Search
      parameters:
        - name: query
          in: query
          required: true
          description: Free-text query for semantic search against learning component descriptions
          schema:
            type: string
            maxLength: 500
        - $ref: "#/components/parameters/AcademicSubjectParam"
        - name: limit
          in: query
          required: false
          description: Maximum number of results to return
          schema:
            type: integer
            minimum: 1
            maximum: 50
            default: 5
      responses:
        "200":
          description: Successfully retrieved search results (ranked by relevance)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/LearningComponentSearchResult"
              example:
                - identifier: "0013fbee-3e76-500f-9978-42aa1a65f105"
                  description: "Use conversions to solve multi-step real-world problems"
                  author: "Achievement Network"
                  provider: "Learning Commons"
                  license: "https://creativecommons.org/licenses/by/4.0/"
                  attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received learning components under CC BY-4.0 from Achievement Network."
                  score: 0.94
                - identifier: "0046446a-0a9b-5ace-92a3-23d4bb158c68"
                  description: "Determine the lateral surface area of three-dimensional cylinders in real-world problems"
                  author: "Achievement Network"
                  provider: "Learning Commons"
                  license: "https://creativecommons.org/licenses/by/4.0/"
                  attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received learning components under CC BY-4.0 from Achievement Network."
                  score: 0.81
        "400":
          description: Bad request - Missing required query parameter
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: "Missing required parameter: query. Example: ?query=solve+multi-step+real-world+problems"
                requestId: req_12345
        "422":
          description: Unprocessable Entity - Invalid parameter values (e.g., enum value not in allowed list)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: "Input should be 'English Language Arts', 'Mathematics', 'Science', 'Social Studies', or 'Other'"
                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 searching for learning components
                requestId: req_12345
  /courses:
    get:
      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
      x-mint:
        content: |
          <Note>
            Currently, <code>im360</code> is the only valid value for the <code>curriculumId</code> parameter.
          </Note>
      operationId: listCourses
      tags:
        - Curriculum
      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
  /courses/{courseId}/scope-and-sequence:
    get:
      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
      tags:
        - Curriculum
      parameters:
        - name: courseId
          in: path
          required: true
          description: Unique identifier for the resource in Knowledge Graph
          schema:
            type: string
        - name: view
          in: query
          required: false
          description: |
            Level of detail in the response
            - `summary` -  Identifiers, names, and positions only
            - `full` - All properties
          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
  /lesson-groupings/{groupingId}:
    get:
      summary: Lesson grouping by ID
      description: |
        Fetches detailed information about a specific lesson grouping.

        Set of related lessons within a curriculum; naming and organizational level may vary across curricula (e.g., unit, module, chapter, section, theme). The `groupName` property indicates the specific type used by the curriculum.

        Lesson groupings can be nested (e.g., units containing sections, chapters containing modules) as indicated by the `groupLevel` property, where 0 represents the top level.

        Use this endpoint when you need to:
        - Get complete metadata for a specific lesson grouping
        - Retrieve organizational details (group name, level, position)
        - Access curriculum-specific labeling and structure information
        - Understand a lesson grouping's place in the course hierarchy
      operationId: getLessonGroupingById
      tags:
        - Curriculum
      parameters:
        - name: groupingId
          in: path
          required: true
          description: Unique identifier for the resource in Knowledge Graph
          schema:
            type: string
      responses:
        "200":
          description: Successfully retrieved lesson grouping
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LessonGrouping"
              example:
                identifier: "im:857861da-50c7-5302-b288-d0b2d4f82188"
                name: "Complex Numbers"
                ordinalName: "Unit 6"
                groupName: "unit"
                groupLevel: 0
                position: 5
                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/"
                curriculumLabel: "Unit"
                lmsLoadingGuidance: "unspecified"
                isOptional: true
                courseCode: "im360:Math2"
                dateCreated: "2023-08-22"
        "400":
          description: Bad request - Invalid groupingId format
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: Invalid grouping identifier format
                requestId: req_12345
        "404":
          description: Lesson grouping not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: NotFoundError
                message: "Lesson grouping with identifier 'im:invalid-id' not found"
                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 the lesson grouping
                requestId: req_12345
  /lessons/{lessonId}:
    get:
      summary: Lesson by ID
      description: |
        Fetches detailed information about a specific lesson.

        A lesson represents a focused instructional session within a larger curriculum structure, such as a lesson grouping or course, designed to achieve specific learning objectives. It typically includes activities, discussions, and assessments, and is intended to be completed within a defined timeframe, such as a class period or session.

        Use this endpoint when you need to:
        - Get complete metadata for a specific lesson
        - Retrieve lesson details including timing, audience, and educational use
        - Access curriculum-specific labeling information
        - Understand a lesson's place in the course structure
      operationId: getLessonById
      tags:
        - Curriculum
      parameters:
        - name: lessonId
          in: path
          required: true
          description: Unique identifier for the resource in Knowledge Graph
          schema:
            type: string
      responses:
        "200":
          description: Successfully retrieved lesson
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Lesson"
              example:
                identifier: "im:2ebf72dc-53f8-557b-b804-fca624be807a"
                name: "Using Functions to Model Battery Power"
                ordinalName: "Lesson 18"
                position: 17
                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/"
                curriculumLabel: "Lesson"
                lmsLoadingGuidance: "unspecified"
                isOptional: false
                courseCode: "im360:Alg1"
                timeRequired: "PT45M"
                dateCreated: "2020-06-25"
        "400":
          description: Bad request - Invalid lessonId format
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: Invalid lesson identifier format
                requestId: req_12345
        "404":
          description: Lesson not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: NotFoundError
                message: "Lesson with identifier 'im:invalid-id' not found"
                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 the lesson
                requestId: req_12345
  /lessons/{lessonId}/activities:
    get:
      summary: Activities in a lesson
      description: |
        Fetches a list of activities within a specific lesson.

        An activity represents a discrete instructional task or exercise within a lesson, designed for students, teachers, or both. Activities are the building blocks of lessons and typically include specific tasks, exercises, discussions, or practice problems that help achieve the lesson's learning objectives.

        Use this endpoint when you need to:
        - Get all activities for a specific lesson
        - Navigate the instructional components of a lesson
        - Access activity metadata including timing, grouping, and submission requirements
        - Build lesson plans or instructional sequences
      operationId: getLessonActivities
      tags:
        - Curriculum
      parameters:
        - name: lessonId
          in: path
          required: true
          description: Unique identifier for the resource in Knowledge Graph
          schema:
            type: string
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of activities
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/Activity"
              example:
                data:
                  - identifier: "im:98928b4e-0183-5e0e-955d-230653db7332"
                    name: "Devices"
                    ordinalName: "Activity 1"
                    position: 0
                    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/"
                    curriculumLabel: "Warm-up"
                    lmsLoadingGuidance: "unspecified"
                    isOptional: false
                    courseCode: "im360:Alg1"
                    timeRequired: "PT5M"
                    studentGroupingType: "pair"
                    dateCreated: "2020-06-25"
                pagination:
                  limit: 100
                  nextCursor: null
                  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
        "404":
          description: Lesson not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: NotFoundError
                message: "Lesson with identifier 'im:invalid-id' not found"
                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 activities
                requestId: req_12345
  /lessons/{lessonId}/standards:
    get:
      summary: Standards for a lesson
      description: |
        Fetches all academic standards aligned to a specific lesson.

        Returns the standards that this lesson addresses through its instructional content and activities. These alignments indicate which learning expectations the lesson is designed to help students achieve.

        Use this endpoint when you need to:
        - See which standards a lesson addresses
        - Build standards-aligned lesson plans
        - Track standards coverage across lessons
        - Generate standards-based reports
      operationId: getLessonStandards
      tags:
        - Curriculum
      parameters:
        - name: lessonId
          in: path
          required: true
          description: Unique identifier for the resource in Knowledge Graph
          schema:
            type: string
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of aligned standards
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/StandardsFrameworkItemAlignmentSummary"
              example:
                data:
                  - identifier: 7b0d37ef-9b49-59cb-936c-3ead359aed05
                    caseIdentifierUUID: 6ba17134-d7cc-11e8-824f-0242ac160002
                    author: 1EdTech
                    provider: Learning Commons
                    license: https://creativecommons.org/licenses/by/4.0/
                    attributionStatement: Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received state standards and written permission under CC BY-4.0 from 1EdTech.
                pagination:
                  limit: 100
                  nextCursor: null
                  hasMore: false
        "404":
          description: Lesson not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /activities/{activityId}/standards:
    get:
      summary: Standards for an activity
      description: |
        Fetches all academic standards aligned to a specific activity.

        Returns the standards that this activity addresses. These alignments indicate which learning expectations the activity is designed to help students achieve through specific tasks and exercises.

        Use this endpoint when you need to:
        - See which standards an activity addresses
        - Build standards-aligned activities
        - Track standards coverage at the activity level
        - Generate detailed standards-based reports
      operationId: getActivityStandards
      tags:
        - Curriculum
      parameters:
        - name: activityId
          in: path
          required: true
          description: Unique identifier for the resource in Knowledge Graph
          schema:
            type: string
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of aligned standards
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/StandardsFrameworkItemAlignmentSummary"
              example:
                data:
                  - identifier: 7b0d37ef-9b49-59cb-936c-3ead359aed05
                    caseIdentifierUUID: 6ba17134-d7cc-11e8-824f-0242ac160002
                    author: 1EdTech
                    provider: Learning Commons
                    license: https://creativecommons.org/licenses/by/4.0/
                    attributionStatement: Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received state standards and written permission under CC BY-4.0 from 1EdTech.
                pagination:
                  limit: 100
                  nextCursor: null
                  hasMore: false
        "404":
          description: Activity not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /assessments/{assessmentId}/standards:
    get:
      summary: Standards for an assessment
      description: |
        Fetches all academic standards aligned to a specific assessment.

        Returns the standards that this assessment evaluates. These alignments indicate which learning expectations the assessment is designed to measure.

        Use this endpoint when you need to:
        - See which standards an assessment evaluates
        - Build standards-aligned assessments
        - Track standards coverage in assessments
        - Generate assessment standards reports
      operationId: getAssessmentStandards
      tags:
        - Curriculum
      parameters:
        - name: assessmentId
          in: path
          required: true
          description: Unique identifier for the resource in Knowledge Graph
          schema:
            type: string
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of aligned standards
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/StandardsFrameworkItemAlignmentSummary"
              example:
                data:
                  - identifier: 7b0d37ef-9b49-59cb-936c-3ead359aed05
                    caseIdentifierUUID: 6ba17134-d7cc-11e8-824f-0242ac160002
                    author: 1EdTech
                    provider: Learning Commons
                    license: https://creativecommons.org/licenses/by/4.0/
                    attributionStatement: Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received state standards and written permission under CC BY-4.0 from 1EdTech.
                pagination:
                  limit: 100
                  nextCursor: null
                  hasMore: false
        "404":
          description: Assessment not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /assessments:
    get:
      summary: Assessments in a course
      description: |
        Fetches assessments for a course with optional filtering by lesson or lesson grouping.

        Assessments can be associated with different levels of the curriculum hierarchy:
        - **Course-level**: All assessments in the course
        - **Lesson grouping-level**: Assessments for a unit, section, or module (e.g., "End-of-Unit Assessment")
        - **Lesson-level**: Assessments specific to a lesson

        Use this endpoint when you need to:
        - Get all assessments for a course
        - Find assessments for a specific lesson grouping (unit, section, module)
        - Find assessments for a specific lesson
        - Build assessment reports or tracking systems

        **Note:** You cannot provide both `lessonId` and `lessonGroupingId` in the same request.
      operationId: listAssessments
      tags:
        - Curriculum
      parameters:
        - name: courseId
          in: query
          required: true
          description: Unique identifier for the resource in Knowledge Graph
          schema:
            type: string
        - name: lessonId
          in: query
          required: false
          description: Unique identifier for the resource (cannot use with `lessonGroupingId`)
          schema:
            type: string
        - name: lessonGroupingId
          in: query
          required: false
          description: Unique identifier for the resource (cannot use with `lessonId`)
          schema:
            type: string
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of assessments
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/Assessment"
              example:
                data:
                  - identifier: "im:d540d085-5435-5b3c-875b-9c810a18d81a"
                    name: "Practice Problems"
                    academicSubject: "Mathematics"
                    gradeLevel:
                      - "4"
                      - "elementary_school"
                    author: "Illustrative Mathematics"
                    provider: "Learning Commons"
                    inLanguage: "English"
                    educationalUse: "assessment"
                    audience:
                      - "Teacher"
                      - "Student"
                      - "Family"
                    license: "https://creativecommons.org/licenses/by-nc/4.0/"
                    curriculumLabel: "Practice Problems"
                    lmsLoadingGuidance: "unspecified"
                    isOptional: false
                    courseCode: "im360:4"
                    studentGroupingType: "individual"
                    dateCreated: "2021-04-30"
                pagination:
                  limit: 100
                  nextCursor: null
                  hasMore: false
        "400":
          description: Bad request - Invalid query parameters or both lessonId and lessonGroupingId provided
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: Cannot provide both lessonId and lessonGroupingId
                requestId: req_12345
        "404":
          description: Course, lesson, or lesson grouping 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 - Missing required courseId parameter
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: "Field required: courseId"
                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 assessments
                requestId: req_12345
  /curriculums/{curriculumId}/dependency-map:
    get:
      summary: Dependency map for a curriculum
      description: |
        Returns the dependency relationships between lesson groupings within a curriculum.

        Dependencies represent prerequisite relationships between lesson groupings (units, sections, modules).
        A dependency from source → target means the target is a prerequisite — it should be taught before the source.

        Use this endpoint when you need to:
        - Visualize the dependency graph for a curriculum
        - Understand prerequisite relationships between units or sections
        - Build a dependency-aware course planner or sequencing tool
      operationId: getCurriculumDependencyMap
      tags:
        - Curriculum
      parameters:
        - name: curriculumId
          in: path
          required: true
          description: Unique identifier for the resource in Knowledge Graph
          schema:
            $ref: "#/components/schemas/CurriculumIdENUM"
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved paginated dependency map
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DependencyMapResponse"
              example:
                dependencies:
                  - source: "im:87b50a26-acbf-5798-ac94-ca1423679acd"
                    sourceName: "Angles, Triangles, and Prisms"
                    sourceCurriculumLabel: "Unit"
                    hasDependency:
                      - identifier: "im:a0e15ae9-dd70-5df0-93ad-9d6b99fc5ad2"
                        name: "Area and Surface Area"
                        curriculumLabel: "Unit"
                      - identifier: "im:c5f3b8d1-4e92-5a6c-b7d8-2f1e9a3c6b4d"
                        name: "Angles and Angle Measurement"
                        curriculumLabel: "Unit"
                  - source: "im:d4e2f1a0-8b7c-5d3e-9f6a-1c2b4d5e8f7a"
                    sourceName: "Constructions"
                    sourceCurriculumLabel: "Section"
                    hasDependency:
                      - identifier: "im:e7f6a5b4-3c2d-5e1f-8a9b-0d1c2e3f4a5b"
                        name: "Defining Rigid Transformations"
                        curriculumLabel: "Section"
                pagination:
                  limit: 100
                  nextCursor: "eyJpZGVudGlmaWVyIjoiaW06ZDRlMmYxYTAtOGI3Yy01ZDNlLTlmNmEtMWMyYjRkNWU4ZjdhIn0="
                  hasMore: true
        "400":
          description: Bad request - Invalid query parameters
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: Invalid cursor format
                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 the dependency map
                requestId: req_12345
  /durable-skills-frameworks:
    get:
      summary: Durable skills frameworks
      description: |
        Fetches the list of DurableSkillsFramework objects available in the knowledge graph.

        Durable skills frameworks describe transferable competencies — collaboration, communication, critical thinking and similar — rather than subject-area academic content. They are published outside the CASE Network, so they carry no CASE identifiers and are addressed by their Knowledge Graph `identifier`.

        Use this endpoint when you need to:
        - Discover which durable skills frameworks are available
        - Find the framework `identifier` required by GET /durable-skills
        - Get framework metadata (name, description, publisher, modification dates)

        Retired frameworks are excluded by default. Set `includeNonCurrent=true` to include them.

        **Related topics:**
        - [XQ Competencies](/knowledge-graph/datasets/xq-competencies)
        - [Carnegie Skills Progressions](/knowledge-graph/datasets/carnegie-skills-progressions)
      operationId: listDurableSkillsFrameworks
      tags:
        - Durable Skills
      parameters:
        - name: includeNonCurrent
          in: query
          required: false
          description: Include frameworks that are no longer current. Defaults to false, which returns only frameworks currently in effect.
          schema:
            type: boolean
            default: false
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of durable skills frameworks
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/DurableSkillsFramework"
              example:
                data:
                  - identifier: "88718ae4-2da7-57c4-9678-cea8d26cef2d"
                    name: "Carnegie Skills Progressions"
                    description: "A research-grounded durable skills framework from the Carnegie Foundation for the Advancement of Teaching and ETS."
                    jurisdiction: "Multi-State"
                    inLanguage: "en-US"
                    isCurrent: true
                    dateCreated: "2026-07-07"
                    dateModified: "2026-07-07"
                    author: "Carnegie Foundation for the Advancement of Teaching"
                    provider: "Learning Commons"
                    license: "https://creativecommons.org/licenses/by/4.0/"
                    attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received the Carnegie Skills Progressions curriculum under CC BY-4.0 from Carnegie Foundation for the Advancement of Teaching."
                pagination:
                  limit: 100
                  nextCursor: null
                  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
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: InternalServerError
                message: An unexpected error occurred while retrieving durable skills frameworks
                requestId: req_12345
  /durable-skills:
    get:
      summary: Durable skills in a framework
      description: |
        Fetches a list of DurableSkill objects within a specific durable skills framework.

        Returns every item in the framework's hierarchy, from top-level skills through to the most granular progression levels. Use `normalizedStatementType` to retrieve only skill statements and exclude the organizational groupings that structure them.

        Use this endpoint when you need to:
        - Retrieve the full contents of a durable skills framework
        - Export a framework's skills for mapping to your own content
        - Browse a framework's structure before navigating it with /durable-skills/{identifier}/children

        **Related topics:**
        - [XQ Competencies](/knowledge-graph/datasets/xq-competencies)
        - [Carnegie Skills Progressions](/knowledge-graph/datasets/carnegie-skills-progressions)
      operationId: listDurableSkills
      tags:
        - Durable Skills
      parameters:
        - $ref: "#/components/parameters/DurableSkillsFrameworkIdentifierParam"
        - $ref: "#/components/parameters/NormalizedStatementTypeParam"
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of durable skills
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/DurableSkill"
              example:
                data:
                  - identifier: "3f2a9c11-5b7e-5d02-9a44-7c1e83b2d905"
                    statementCode: "COL.1.1A.1"
                    name: "Exploring"
                    description: "Asks questions to better understand a topic, group task or shared goal."
                    statementType: "Progression Level"
                    normalizedStatementType: "Standard"
                    gradeLevel:
                      - "9"
                      - "10"
                      - "11"
                      - "12"
                    jurisdiction: "Multi-State"
                    inLanguage: "en-US"
                    dateCreated: "2026-07-07"
                    dateModified: "2026-07-07"
                    notes: null
                    author: "Carnegie Foundation for the Advancement of Teaching"
                    provider: "Learning Commons"
                    license: "https://creativecommons.org/licenses/by/4.0/"
                    attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received the Carnegie Skills Progressions curriculum under CC BY-4.0 from Carnegie Foundation for the Advancement of Teaching."
                    hasChildren: false
                pagination:
                  limit: 100
                  nextCursor: "eyJpZGVudGlmaWVyIjogIjczYTJhNWY5LWRjOGUtNWE3Yi1iMzc4LTYzZGNmOWViZjFiNSJ9"
                  hasMore: true
        "400":
          description: Bad request - Missing required parameter or invalid values
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: "Missing required parameter: frameworkIdentifier. Obtain it from GET /durable-skills-frameworks."
                requestId: req_12345
        "422":
          description: Unprocessable Entity - Invalid parameter values (e.g., enum value not in allowed list)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: "Input should be 'Standard', 'Standard Grouping', or 'Other'"
                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 durable skills
                requestId: req_12345
  /durable-skills/search:
    get:
      summary: Search durable skills
      description: |
        Searches for DurableSkill objects by semantic similarity or by exact statement code.

        Provide exactly one of `query` or `statementCode`. Semantic search ranks results by relevance to the query text and returns a `score` reflecting vector similarity. Statement code search performs an exact, case-insensitive match and returns a score of 1.0.

        Use this endpoint when you need to:
        - Find durable skills relevant to a teaching goal or observed behaviour
        - Look up a specific skill by the code used in framework documentation
        - Discover skills to map to your own content or assessments

        Semantic search covers all durable skills frameworks.

        **Related topics:**
        - [XQ Competencies](/knowledge-graph/datasets/xq-competencies)
        - [Carnegie Skills Progressions](/knowledge-graph/datasets/carnegie-skills-progressions)
      operationId: searchDurableSkills
      tags:
        - Durable Skills
        - Search
      parameters:
        - name: query
          in: query
          required: false
          description: Free-text query for semantic search against durable skill descriptions. Provide either this or statementCode, but not both.
          schema:
            type: string
            maxLength: 500
        - name: statementCode
          in: query
          required: false
          description: Exact statement code to look up, case-insensitive (e.g. "COL.1.1A.1"). Provide either this or query, but not both.
          schema:
            type: string
        - $ref: "#/components/parameters/NormalizedStatementTypeParam"
        - name: limit
          in: query
          required: false
          description: Maximum number of results to return. Default is 5. Maximum allowed is 50.
          schema:
            type: integer
            minimum: 1
            maximum: 50
            default: 5
      responses:
        "200":
          description: Successfully retrieved search results
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/DurableSkillSearchResult"
              example:
                - identifier: "3f2a9c11-5b7e-5d02-9a44-7c1e83b2d905"
                  statementCode: "COL.1.1A.1"
                  name: "Exploring"
                  description: "Asks questions to better understand a topic, group task or shared goal."
                  statementType: "Progression Level"
                  normalizedStatementType: "Standard"
                  gradeLevel:
                    - "9"
                    - "10"
                    - "11"
                    - "12"
                  jurisdiction: "Multi-State"
                  inLanguage: "en-US"
                  dateCreated: "2026-07-07"
                  dateModified: "2026-07-07"
                  notes: null
                  author: "Carnegie Foundation for the Advancement of Teaching"
                  provider: "Learning Commons"
                  license: "https://creativecommons.org/licenses/by/4.0/"
                  attributionStatement: "Knowledge Graph is provided by Learning Commons under the CC BY-4.0 license. Learning Commons received the Carnegie Skills Progressions curriculum under CC BY-4.0 from Carnegie Foundation for the Advancement of Teaching."
                  hasChildren: false
                  score: 0.87
        "400":
          description: Bad request - Neither or both of query and statementCode provided
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: "Exactly one of query or statementCode must be provided. Example: ?query=asking+clarifying+questions or ?statementCode=COL.1.1A.1"
                requestId: req_12345
        "422":
          description: Unprocessable Entity - Invalid parameter values (e.g., enum value not in allowed list)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: ValidationError
                message: "Input should be 'Standard', 'Standard Grouping', or 'Other'"
                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 searching durable skills
                requestId: req_12345
  /durable-skills/{identifier}:
    get:
      summary: Durable skill by ID
      description: |
        Fetches a single DurableSkill by its Knowledge Graph identifier.

        Use this endpoint when you need to:
        - Retrieve the full details of a specific durable skill
        - Resolve an identifier returned by GET /durable-skills or the search endpoint

        Framework identifiers are not valid here — use GET /durable-skills-frameworks for frameworks.

        **Related topics:**
        - [XQ Competencies](/knowledge-graph/datasets/xq-competencies)
        - [Carnegie Skills Progressions](/knowledge-graph/datasets/carnegie-skills-progressions)
      operationId: getDurableSkillByIdentifier
      tags:
        - Durable Skills
      parameters:
        - $ref: "#/components/parameters/DurableSkillIdentifierPath"
      responses:
        "200":
          description: Successfully retrieved the durable skill
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DurableSkill"
        "404":
          description: Durable skill not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: NotFoundError
                message: Durable skill not found
                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 the durable skill
                requestId: req_12345
  /durable-skills/{identifier}/children:
    get:
      summary: Children of a durable skill
      description: |
        Fetches the direct children of a durable skill through the "hasChild" relationship.

        Durable skills frameworks are hierarchical, and this endpoint walks one level at a time. Check the parent's `hasChildren` flag before calling to avoid requests that return empty pages.

        Use this endpoint when you need to:
        - Navigate a framework's hierarchy one level at a time
        - Retrieve the progression levels beneath a skill
        - Build an expandable tree view of a framework

        **Related topics:**
        - [XQ Competencies](/knowledge-graph/datasets/xq-competencies)
        - [Carnegie Skills Progressions](/knowledge-graph/datasets/carnegie-skills-progressions)
      operationId: listChildDurableSkills
      tags:
        - Durable Skills
        - Hierarchy
      parameters:
        - $ref: "#/components/parameters/DurableSkillIdentifierPath"
        - $ref: "#/components/parameters/LimitParam"
        - $ref: "#/components/parameters/CursorParam"
      responses:
        "200":
          description: Successfully retrieved list of child durable skills
          content:
            application/json:
              schema:
                allOf:
                  - $ref: "#/components/schemas/PaginatedResponse"
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: "#/components/schemas/DurableSkill"
        "404":
          description: Parent durable skill not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                error: NotFoundError
                message: Durable skill not found
                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 child durable skills
                requestId: req_12345
components:
  schemas:
    Activity:
      type: object
      description: |
        An activity represents a discrete instructional task or exercise within a lesson, designed for students, teachers, or both.
      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
        ordinalName:
          type: string
          description: Label with sequence number and descriptive text (e.g., "Activity 1")
        position:
          type: integer
          description: Position of the resource within its parent
        academicSubject:
          type: string
          description: Academic subject
        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 (e.g., "Warm-up", "Cool-down", "Practice")
        lmsLoadingGuidance:
          type: string
          description: LMS loading guidance for the resource
        isOptional:
          type: boolean
          description: Whether the resource is optional to complete
        courseCode:
          type: string
          description: Unique identifier for the resource used by the course provider
        timeRequired:
          type: string
          description: Approximate amount of time required to work through the resource (ISO 8601 duration format)
        studentGroupingType:
          type: string
          description: Grouping structure for student participation (e.g., "individual", "pair", "small_group", "whole_class")
        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
    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
    CurriculumIdENUM:
      type: string
      description: Unique identifier for the resource in Knowledge Graph
      enum:
        - im360
    JurisdictionENUM:
      type: string
      description: US state, territory, or multi-state designation
      enum:
        - Alabama
        - Alaska
        - Arizona
        - Arkansas
        - California
        - Colorado
        - Connecticut
        - Delaware
        - Florida
        - Georgia
        - Hawaii
        - Idaho
        - Illinois
        - Indiana
        - Iowa
        - Kansas
        - Kentucky
        - Louisiana
        - Maine
        - Maryland
        - Massachusetts
        - Michigan
        - Minnesota
        - Mississippi
        - Missouri
        - Montana
        - Nebraska
        - Nevada
        - New Hampshire
        - New Jersey
        - New Mexico
        - New York
        - North Carolina
        - North Dakota
        - Ohio
        - Oklahoma
        - Oregon
        - Pennsylvania
        - Rhode Island
        - South Carolina
        - South Dakota
        - Tennessee
        - Texas
        - Utah
        - Vermont
        - Virginia
        - Washington
        - Washington, D.C.
        - West Virginia
        - Wisconsin
        - Wyoming
        - Multi-State
    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"
    AdoptionStatusENUM:
      type: string
      description: Adoption status of a standards framework
      enum:
        - Draft
        - Proposed
        - Adopted
        - Implemented
        - Retired
    LanguageENUM:
      type: string
      description: Language used in the resource (BCP 47 format)
      enum:
        - en-US
        - es-US
    NormalizedStatementTypeENUM:
      type: string
      description: Classification label that has been standardized across standards frameworks for cross-state queries and categorization
      enum:
        - Standard
        - Standard Grouping
        - Other
    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
    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"
    ScopeAndSequence:
      oneOf:
        - $ref: "#/components/schemas/ScopeAndSequenceSummary"
        - $ref: "#/components/schemas/ScopeAndSequenceFull"
      discriminator:
        propertyName: view
        mapping:
          summary: "#/components/schemas/ScopeAndSequenceSummary"
          full: "#/components/schemas/ScopeAndSequenceFull"
    ScopeAndSequenceSummary:
      type: object
      description: Hierarchical structure of a course showing lesson groupings and lessons (`summary` view)
      required:
        - courseId
        - courseName
        - view
        - lessonGroupings
      properties:
        courseId:
          type: string
          description: Unique identifier for the resource in Knowledge Graph
        courseName:
          type: string
          description: Name or title of the resource
        view:
          type: string
          enum:
            - summary
          description: Level of detail included in the response
        lessonGroupings:
          type: array
          description: Top-level lesson groupings (e.g., units, modules, chapters)
          items:
            $ref: "#/components/schemas/LessonGroupingNode"
    ScopeAndSequenceFull:
      type: object
      description: Hierarchical structure of a course showing lesson groupings and lessons (`full` view)
      required:
        - courseId
        - courseName
        - view
        - lessonGroupings
      properties:
        courseId:
          type: string
          description: Unique identifier for the resource in Knowledge Graph
        courseName:
          type: string
          description: Name or title of the resource
        view:
          type: string
          enum:
            - full
          description: Level of detail included in the response
        lessonGroupings:
          type: array
          description: Top-level lesson groupings (e.g., units, modules, chapters)
          items:
            $ref: "#/components/schemas/LessonGroupingNodeFull"
    LessonGroupingNode:
      type: object
      description: Lesson grouping node in the course hierarchy for summary view (minimal fields)
      required:
        - identifier
        - name
        - groupName
        - groupLevel
        - position
      properties:
        identifier:
          type: string
          description: Unique identifier for the resource in Knowledge Graph
        name:
          type: string
          description: Name or title of the resource
        ordinalName:
          type: string
          description: Label with sequence number and descriptive text (e.g., "Unit 1", "Chapter 2")
        groupName:
          type: string
          description: Type of grouping (e.g., "unit", "section", "module", "chapter")
        groupLevel:
          type: integer
          description: Nesting level of this grouping (0 = top level, 1 = nested once, etc.)
        position:
          type: integer
          description: Position of the resource 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: Lesson grouping node in the course hierarchy for full view (all metadata fields)
      required:
        - identifier
        - name
        - groupName
        - groupLevel
        - position
      properties:
        identifier:
          type: string
          description: Unique identifier for the resource in Knowledge Graph
        name:
          type: string
          description: Name or title of the resource
        ordinalName:
          type: string
          description: Label with sequence number and descriptive text (e.g., "Unit 1", "Chapter 2")
        groupName:
          type: string
          description: Type of grouping (e.g., "unit", "section", "module", "chapter")
        groupLevel:
          type: integer
          description: Nesting level of this grouping (0 = top level, 1 = nested once, etc.)
        position:
          type: integer
          description: Position of the resource within its parent
        academicSubject:
          type: string
          description: Academic subject
        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
        isOptional:
          type: boolean
          description: Whether the resource is optional to complete
        courseCode:
          type: string
          description: Unique identifier for the resource used by the course provider
        publisherIdentifier:
          type: string
          nullable: true
          description: Unique identifier for the resource used by the publisher
        timeRequired:
          type: string
          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
        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: Lesson node in the course hierarchy for summary view (minimal fields)
      required:
        - identifier
        - name
        - position
      properties:
        identifier:
          type: string
          description: Unique identifier for the resource in Knowledge Graph
        name:
          type: string
          description: Name or title of the resource
        ordinalName:
          type: string
          description: Label with sequence number and descriptive text (e.g., "Lesson 1")
        position:
          type: integer
          description: Position of the resource within its parent
    LessonNodeFull:
      type: object
      description: Lesson node in the course hierarchy for full view (all metadata fields)
      required:
        - identifier
        - name
        - position
      properties:
        identifier:
          type: string
          description: Unique identifier for the resource in Knowledge Graph
        name:
          type: string
          description: Name or title of the resource
        ordinalName:
          type: string
          description: Label with sequence number and descriptive text (e.g., "Lesson 1")
        position:
          type: integer
          description: Position within the resource's parent grouping
        academicSubject:
          type: string
          description: Academic subject
        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
        isOptional:
          type: boolean
          description: Whether the resource is optional to complete
        courseCode:
          type: string
          description: Unique identifier for the resource used by the course provider
        publisherIdentifier:
          type: string
          nullable: true
          description: Unique identifier for the resource used by the publisher
        timeRequired:
          type: string
          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
    LessonGrouping:
      type: object
      description: |
        Set of related lessons within a curriculum; naming and organizational level may vary across curricula (e.g., unit, module, chapter, section, theme)
      required:
        - identifier
        - groupName
        - groupLevel
        - 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
        ordinalName:
          type: string
          description: Label with sequence number and descriptive text (e.g., "Unit 1", "Chapter 2")
        groupName:
          type: string
          description: Type of grouping (e.g., "unit", "section", "module", "chapter")
        groupLevel:
          type: integer
          description: Nesting level of this grouping (0 = top level, 1 = nested once, etc.)
        position:
          type: integer
          description: Position of the resource within its parent
        academicSubject:
          type: string
          description: Academic subject
        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
        isOptional:
          type: boolean
          description: Whether the resource is optional to complete
        courseCode:
          type: string
          description: Unique identifier for the resource used by the course provider
        publisherIdentifier:
          type: string
          nullable: true
          description: Unique identifier for the resource used by the publisher
        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
        lessons:
          type: array
          items:
            $ref: "#/components/schemas/Lesson"
          description: Lessons contained in this resource
    Lesson:
      type: object
      description: |
        Focused instructional session within a curriculum structure (e.g., lesson grouping or course) designed to achieve specific learning objectives
      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
        ordinalName:
          type: string
          description: Label with sequence number and descriptive text (e.g., "Lesson 1")
        position:
          type: integer
          description: Position of the resource within its parent
        academicSubject:
          type: string
          description: Academic subject
        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
        isOptional:
          type: boolean
          description: Whether the resource is optional to complete
        courseCode:
          type: string
          description: Unique identifier for the resource used by the course provider
        publisherIdentifier:
          type: string
          nullable: true
          description: Unique identifier for the resource used by the publisher
        timeRequired:
          type: string
          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
    StandardsFrameworkItem:
      type: object
      description: Individual element within a standards framework (e.g., standards, organizational groupings)
      required:
        - identifier
        - caseIdentifierUUID
        - author
        - provider
        - license
        - attributionStatement
        - hasChildren
      properties:
        identifier:
          type: string
          description: Unique identifier for the resource in Knowledge Graph
        caseIdentifierURI:
          type: string
          format: uri
          description: URI referencing the CASE Network equivalent
        caseIdentifierUUID:
          type: string
          format: uuid
          description: CASE Network UUID for the resource
        statementCode:
          type: string
          nullable: true
          description: Code that identifies a standard within its standards framework (e.g., "3.NF.A.1", "A.1B", "MP1"); `null` for organizational groupings without assigned codes
        description:
          type: string
          nullable: true
          description: Full text of the standard describing what students should know or be able to do
        statementType:
          type: string
          nullable: true
          description: Original classification label that preserves the terminology in the state's official standards document (e.g., "Domain", "Cluster", "Strand", "Benchmark", "Practice Standard")
        normalizedStatementType:
          nullable: true
          $ref: "#/components/schemas/NormalizedStatementTypeENUM"
        jurisdiction:
          $ref: "#/components/schemas/JurisdictionENUM"
        academicSubject:
          $ref: "#/components/schemas/AcademicSubjectENUM"
        gradeLevel:
          type: array
          nullable: true
          items:
            $ref: "#/components/schemas/GradeLevelENUM"
        inLanguage:
          description: Language used in the resource (BCP 47 format)
          $ref: "#/components/schemas/LanguageENUM"
        dateModified:
          type: string
          format: date
          nullable: true
          description: Date last modified
        notes:
          type: string
          nullable: true
          description: (Optional) Additional context, commentary, clarifications, or usage guidance
        author:
          type: string
          description: Author or creator of the resource
        provider:
          type: string
          description: Source data provider for the resource
        license:
          type: string
          format: uri
          description: URL to the resource's license document
        attributionStatement:
          type: string
          description: Statement that acknowledges the resource's author and provider, as required by the CC BY 4.0 license
        hasChildren:
          type: boolean
          description: Whether this item has 1+ direct child standards
    AcademicStandardSearchResult:
      description: StandardsFrameworkItemSummary enriched with a relevance score from the search.
      allOf:
        - $ref: "#/components/schemas/StandardsFrameworkItemSummary"
        - type: object
          required:
            - score
          properties:
            score:
              type: number
              format: float
              minimum: 0
              maximum: 1
              description: Relevance score between 0 and 1 (reflects vector similarity for semantic search; 1.0 for exact code match)
    StandardsFramework:
      type: object
      description: |
        Represents a complete academic standards document published by an official body like a state department of education.

        StandardsFramework serves as the root entity that organizes and contextualizes all standards within a given standards framework. Each standards framework represents a complete standards document with its own jurisdiction, subject area, and adoption status.
      required:
        - identifier
        - caseIdentifierUUID
        - author
        - provider
        - license
        - attributionStatement
        - isCurrent
      properties:
        identifier:
          type: string
          description: Unique identifier for the resource in Knowledge Graph
        caseIdentifierURI:
          type: string
          format: uri
          description: URI referencing the CASE Network equivalent
        caseIdentifierUUID:
          type: string
          format: uuid
          description: CASE Network UUID for the resource
        name:
          type: string
          nullable: true
          description: Name or title of the resource
        description:
          type: string
          nullable: true
          description: Description with additional context
        jurisdiction:
          $ref: "#/components/schemas/JurisdictionENUM"
        academicSubject:
          description: Academic subject area
          $ref: "#/components/schemas/AcademicSubjectENUM"
        inLanguage:
          description: Language used in the resource (BCP 47 format)
          $ref: "#/components/schemas/LanguageENUM"
        adoptionStatus:
          $ref: "#/components/schemas/AdoptionStatusENUM"
        dateModified:
          type: string
          format: date
          nullable: true
          description: Date last modified
        notes:
          type: string
          nullable: true
          description: (Optional) Additional context, commentary, clarifications, or usage guidance
        author:
          type: string
          description: Author or creator of the resource
        provider:
          type: string
          description: Source data provider for the resource
        license:
          type: string
          format: uri
          description: URL to the resource's license document
        attributionStatement:
          type: string
          description: Statement that acknowledges the resource's author and provider, as required by the CC BY 4.0 license
        isCurrent:
          type: boolean
          description: Whether this framework is the currently adopted version. When false, the framework has been superseded but is retained. The framework list returns current frameworks by default; pass includeNonCurrent=true to include all frameworks.
    DurableSkillsFramework:
      type: object
      description: |
        Represents a complete durable skills framework published by an organization such as XQ Institute or the Carnegie Foundation for the Advancement of Teaching.

        Durable skills frameworks describe transferable competencies — collaboration, communication, critical thinking and similar — rather than subject-area academic content. They are published outside the CASE Network, so they carry no CASE identifiers and are addressed by their Knowledge Graph `identifier`.
      required:
        - identifier
        - author
        - provider
        - license
        - attributionStatement
      properties:
        identifier:
          type: string
          description: The unique identifier for this framework in the Knowledge Graph system. This is a system-generated identifier that remains stable across data updates. Use it to retrieve the framework's skills via GET /durable-skills.
        name:
          type: string
          nullable: true
          description: The name or title of the framework (e.g. "XQ Competencies", "Carnegie Skills Progressions")
        description:
          type: string
          nullable: true
          description: A description of the framework providing additional context about its structure, scope and origin
        jurisdiction:
          description: The governing body responsible for publishing this framework. Durable skills frameworks are not state-specific and are published as "Multi-State".
          $ref: "#/components/schemas/JurisdictionENUM"
        inLanguage:
          description: The language of the framework content, in BCP 47 format
          $ref: "#/components/schemas/LanguageENUM"
        isCurrent:
          type: boolean
          description: Whether this framework is currently in effect. Frameworks that have been superseded or retired are excluded from responses by default; set includeNonCurrent=true to retrieve them.
        dateCreated:
          type: string
          format: date
          nullable: true
          description: The date on which this framework was created in the source system
        dateModified:
          type: string
          format: date
          nullable: true
          description: The date on which this framework was most recently modified
        author:
          type: string
          description: The author or creator of this framework, typically the organization that published it
        provider:
          type: string
          description: The service provider or organization that makes this data available in the knowledge graph
        license:
          type: string
          format: uri
          description: A URL to the license document that applies to this content
        attributionStatement:
          type: string
          description: A textual credit that acknowledges the source and creator of this work, as required by the CC BY 4.0 license. If you display or redistribute this framework, you must include this attribution statement to comply with the license terms.
    DurableSkill:
      type: object
      description: |
        Represents an individual element within a durable skills framework — either a skill statement or an organizational grouping that structures them.

        Durable skills frameworks organize their content hierarchically, and each framework uses its own vocabulary for the levels (for example "Competency" and "Component Skill" in XQ Competencies, or "Subskill" and "Indicator" in Carnegie Skills Progressions). Use `normalizedStatementType` for a classification that is consistent across frameworks, and `statementType` to see the framework's own label.

        These items are published outside the CASE Network, so they carry no CASE identifiers and are addressed by their Knowledge Graph `identifier`.
      required:
        - identifier
        - author
        - provider
        - license
        - attributionStatement
        - hasChildren
      properties:
        identifier:
          type: string
          description: The unique identifier for this item in the Knowledge Graph system. This is a system-generated identifier that remains stable across data updates and can be used to reference this item in queries and relationships.
        statementCode:
          type: string
          nullable: true
          description: A short, human-readable code that identifies this item within its framework, reflecting its position in the hierarchy (e.g. "COL.1.1A.1", "FK.AC.1.a"). This is the code practitioners use to reference the skill in materials and planning tools.
        name:
          type: string
          nullable: true
          description: A short label for this item. For progression levels this names the level reached (e.g. "Exploring", "Analyzing", "Integrating", "Extending"), which distinguishes sibling levels under the same parent. May be null for organizational groupings that carry no separate label.
        description:
          type: string
          nullable: true
          description: The full text of the skill statement or organizational element, describing what a learner should know or be able to do. May be null for purely structural groupings.
        statementType:
          type: string
          nullable: true
          description: The classification label used by the source framework for this item (e.g. "Competency", "Component Skill", "Progression Level", "Subskill", "Indicator"). This preserves the framework's own terminology, which differs between frameworks. Use normalizedStatementType for cross-framework comparisons.
        normalizedStatementType:
          description: A normalized classification describing the broad functional role of this item, standardized across frameworks regardless of each framework's own labels. Use this to separate skill statements from the groupings that organize them.
          nullable: true
          $ref: "#/components/schemas/NormalizedStatementTypeENUM"
        gradeLevel:
          type: array
          nullable: true
          description: The educational grade level(s) for which this item is intended
          items:
            $ref: "#/components/schemas/GradeLevelENUM"
        jurisdiction:
          description: The governing body responsible for publishing this item. Durable skills are not state-specific and are published as "Multi-State".
          $ref: "#/components/schemas/JurisdictionENUM"
        inLanguage:
          description: The language of the content, in BCP 47 format
          $ref: "#/components/schemas/LanguageENUM"
        dateCreated:
          type: string
          format: date
          nullable: true
          description: The date on which this item was created in the source system
        dateModified:
          type: string
          format: date
          nullable: true
          description: The date on which this item was most recently modified in the source system
        notes:
          type: string
          nullable: true
          description: Optional field containing additional context, commentary or usage guidance about this item
        author:
          type: string
          description: The author or creator of this content, typically the organization that published the framework
        provider:
          type: string
          description: The service provider or organization that makes this data available in the knowledge graph
        license:
          type: string
          format: uri
          description: A URL to the license document that applies to this content
        attributionStatement:
          type: string
          description: A textual credit that acknowledges the source and creator of this work, as required by the CC BY 4.0 license. If you display or redistribute this content, you must include this attribution statement to comply with the license terms.
        hasChildren:
          type: boolean
          description: True if this item has at least one direct child via the "hasChild" relationship. Use this flag to decide whether to render an expand/collapse affordance and whether a follow-up call to /durable-skills/{identifier}/children will return results, avoiding requests that yield empty pages.
    DurableSkillSearchResult:
      description: A DurableSkill enriched with a relevance score from the search.
      allOf:
        - $ref: "#/components/schemas/DurableSkill"
        - type: object
          required:
            - score
          properties:
            score:
              type: number
              format: float
              minimum: 0
              maximum: 1
              description: Relevance score between 0 and 1. Higher values indicate stronger alignment with the search criteria. For semantic search, this reflects vector similarity. For exact code match, the score is always 1.0.
    StandardsFrameworkItemSummary:
      type: object
      description: |
        Lightweight representation of a StandardsFrameworkItem containing only essential identifying information.

        Used in relationship endpoints (learning progressions, related standards) to keep responses fast and enable efficient graph traversal. To retrieve full details for a standard, use the GET /standards/{caseIdentifierUUID} endpoint.
      required:
        - caseIdentifierUUID
        - author
        - provider
        - license
        - attributionStatement
      properties:
        caseIdentifierUUID:
          type: string
          format: uuid
          description: CASE Network UUID for the resource
        statementCode:
          type: string
          nullable: true
          description: Code that identifies a standard within its standards framework (e.g., "3.NF.A.1", "A.1B", "MP1"); `null` for organizational groupings without assigned codes
        description:
          type: string
          nullable: true
          description: Full text of the standard describing what students should know or be able to do
        jurisdiction:
          $ref: "#/components/schemas/JurisdictionENUM"
        author:
          type: string
          description: Author or creator of the resource
        provider:
          type: string
          description: Source data provider for the resource
        license:
          type: string
          format: uri
          description: URL to the resource's license document
        attributionStatement:
          type: string
          description: Statement that acknowledges the resource's author and provider, as required by the CC BY 4.0 license
    StandardsFrameworkItemAlignmentSummary:
      description: |
        A StandardsFrameworkItemSummary augmented with the educational alignment type from the source resource (lesson, activity, or assessment) to this standard.
      allOf:
        - $ref: "#/components/schemas/StandardsFrameworkItemSummary"
        - type: object
          properties:
            curriculumAlignmentType:
              type: array
              items:
                type: string
              description: |
                Description of how the resource relates to its standard (e.g., `addressing`, `building_toward`, `building_on`, `practicing`)
    ActivitySummary:
      type: object
      description: |
        A lightweight representation of an Activity containing only essential identifying information for alignment endpoints.
      required:
        - identifier
        - name
        - author
        - provider
        - license
        - attributionStatement
      properties:
        identifier:
          type: string
          description: Unique identifier for the resource in Knowledge Graph
        name:
          type: string
          description: Name or title of the resource
        ordinalName:
          type: string
          description: Label with sequence number and descriptive text (e.g., "Activity 1")
        author:
          type: string
          description: Author or creator of the resource
        provider:
          type: string
          description: Source data provider for the resource
        license:
          type: string
          description: URL to the resource's license document
        attributionStatement:
          type: string
          description: Statement that acknowledges the resource's author and provider, as required by the CC BY 4.0 license
        curriculumAlignmentType:
          type: array
          items:
            type: string
          description: |
            Description of how the resource relates to its standard (e.g., `addressing`, `building_toward`, `building_on`, `practicing`)
    Assessment:
      type: object
      description: |
        An assessment evaluates a student's understanding or mastery of knowledge, skills, or competencies through structured tasks or questions.
      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
        academicSubject:
          type: string
          description: Academic subject
        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
        isOptional:
          type: boolean
          description: Whether the resource is optional to complete
        courseCode:
          type: string
          description: Unique identifier for the resource used by the course provider
        publisherIdentifier:
          type: string
          nullable: true
          description: Unique identifier for the resource used by the publisher
        studentGroupingType:
          type: string
          description: Describes intended grouping structure for student participation (e.g., "individual", "pair", "small_group")
        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
    AssessmentSummary:
      type: object
      description: |
        A lightweight representation of an Assessment containing only essential identifying information for alignment endpoints.
      required:
        - identifier
        - name
        - author
        - provider
        - license
        - attributionStatement
      properties:
        identifier:
          type: string
          description: Unique identifier for the resource in Knowledge Graph
        name:
          type: string
          description: Name or title of the resource
        author:
          type: string
          description: Author or creator of the resource
        provider:
          type: string
          description: Source data provider for the resource
        license:
          type: string
          description: URL to the resource's license document
        attributionStatement:
          type: string
          description: Statement that acknowledges the resource's author and provider, as required by the CC BY 4.0 license
        curriculumAlignmentType:
          type: array
          items:
            type: string
          description: |
            Description of how the resource relates to its standard (e.g., `addressing`, `building_toward`, `building_on`, `practicing`)
    LessonSummary:
      type: object
      description: |
        A lightweight representation of a Lesson containing only essential identifying information for alignment endpoints.
      required:
        - identifier
        - name
        - author
        - provider
        - license
        - attributionStatement
      properties:
        identifier:
          type: string
          description: Unique identifier for the resource in Knowledge Graph
        name:
          type: string
          description: Name or title of the resource
        ordinalName:
          type: string
          description: Label with sequence number and descriptive text (e.g., "Lesson 1")
        author:
          type: string
          description: Author or creator of the resource
        provider:
          type: string
          description: Source data provider for the resource
        license:
          type: string
          description: URL to the resource's license document
        attributionStatement:
          type: string
          description: Statement that acknowledges the resource's author and provider, as required by the CC BY 4.0 license
        curriculumAlignmentType:
          type: array
          items:
            type: string
          description: |
            Description of how the resource relates to its standard (e.g., `addressing`, `building_toward`, `building_on`, `practicing`)
    StandardCrosswalk:
      type: object
      description: |
        Represents a crosswalk relationship between two standards, including similarity metrics based on shared Learning Components.

        Crosswalks connect mathematics standards bidirectionally based on measurable overlap of Learning Components:
        - **State → CCSS**: When querying with a state standard, this represents an aligned CCSS standard
        - **CCSS → State**: When querying with a CCSS standard, this represents an aligned state standard

        Each crosswalk includes quantitative measures that help understand the strength and nature of the alignment.

        The Jaccard similarity score measures the proportion of shared Learning Components between the two standards, with scores ranging from 0 (no overlap) to 1 (complete overlap). Higher scores indicate stronger similarity in content coverage.
      required:
        - caseIdentifierUUID
        - author
        - provider
        - license
        - attributionStatement
      properties:
        caseIdentifierUUID:
          type: string
          format: uuid
          description: CASE Network UUID for the resource
        statementCode:
          type: string
          nullable: true
          description: Code that identifies a standard within its standards framework (e.g., "3.NF.A.1", "A.1B", "MP1"); `null` for organizational groupings without assigned codes
        description:
          type: string
          nullable: true
          description: Full text of the standard describing what students should know or be able to do
        jurisdiction:
          type: string
          nullable: true
          $ref: "#/components/schemas/JurisdictionENUM"
        jaccard:
          type: number
          format: float
          description: Jaccard score representing the proportion of shared components between a state and Common Core State Standards (CCSS) standard; calculated as `sharedLCCount / (stateLCCount + ccssLCCount - sharedLCCount)`
          minimum: 0.0
          maximum: 1.0
        stateLCCount:
          type: integer
          description: Number of components supporting the state standard
          minimum: 0
        ccssLCCount:
          type: integer
          description: Number of components supporting the Common Core State Standards (CCSS) standard
          minimum: 0
        sharedLCCount:
          type: integer
          description: Number of components supporting both the state and Common Core State Standards (CCSS) standards
          minimum: 1
        author:
          type: string
          description: Author or creator of the resource
        provider:
          type: string
          description: Source data provider for the resource
        license:
          type: string
          format: uri
          description: URL to the resource's license document
        attributionStatement:
          type: string
          description: Statement that acknowledges the resource's author and provider, as required by the CC BY 4.0 license
    LearningComponentSummary:
      type: object
      description: |
        A lightweight representation of a LearningComponent containing only essential information.

        This summary format is used in relationship endpoints (standards to learning components) to keep responses fast and enable efficient traversal. To retrieve full details for a learning component, use the GET /learning-components/{identifier} endpoint.
      required:
        - identifier
        - author
        - provider
        - license
        - attributionStatement
      properties:
        identifier:
          type: string
          description: Unique identifier for the resource in Knowledge Graph
        description:
          type: string
          nullable: true
          description: Description of the specific skill or concept represented
        author:
          type: string
          description: Author or creator of the resource
        provider:
          type: string
          description: Source data provider for the resource
        license:
          type: string
          format: uri
          description: URL to the resource's license document
        attributionStatement:
          type: string
          description: Statement that acknowledges the resource's author and provider, as required by the CC BY 4.0 license
    LearningComponentSearchResult:
      description: A LearningComponentSummary enriched with a relevance score from the search.
      allOf:
        - $ref: "#/components/schemas/LearningComponentSummary"
        - type: object
          required:
            - score
          properties:
            score:
              type: number
              format: float
              minimum: 0
              maximum: 1
              description: Relevance score between 0 and 1 (reflects vector similarity for semantic search)
    LearningComponent:
      type: object
      description: A single, well-defined skill or concept that students are expected to learn
      required:
        - identifier
        - author
        - provider
        - license
        - attributionStatement
      properties:
        identifier:
          type: string
          description: Unique identifier for the resource in Knowledge Graph
        description:
          type: string
          description: Description of the specific skill or concept represented
        academicSubject:
          $ref: "#/components/schemas/AcademicSubjectENUM"
        inLanguage:
          description: Language used in the resource (BCP 47 format)
          $ref: "#/components/schemas/LanguageENUM"
        dateCreated:
          type: string
          format: date
          nullable: true
          description: Date created
        dateModified:
          type: string
          format: date
          nullable: true
          description: Date last modified
        examples:
          type: array
          items:
            type: string
          nullable: true
          description: Examples of how the skill or concept represented might appear in an instructional context
        author:
          type: string
          description: Author or creator of the resource
        provider:
          type: string
          description: Source data provider for the resource
        license:
          type: string
          format: uri
          description: URL to the resource's license document
        attributionStatement:
          type: string
          description: Statement that acknowledges the resource's author and provider, as required by the CC BY 4.0 license
    DependencyTarget:
      type: object
      description: Lesson grouping that is depended upon (a prerequisite).
      required:
        - identifier
      properties:
        identifier:
          type: string
          description: Unique identifier for the resource in Knowledge Graph
        name:
          type: string
          description: Name or title of the resource
        curriculumLabel:
          type: string
          description: Curriculum label of the target lesson grouping (e.g., "Unit", "Section")
    Dependency:
      type: object
      description: Lesson grouping and the other lesson groupings it depends on (prerequisites).
      required:
        - source
        - hasDependency
      properties:
        source:
          type: string
          description: Unique identifier for the resource in Knowledge Graph
        sourceName:
          type: string
          description: Name or title of the resource
        sourceCurriculumLabel:
          type: string
          description: Curriculum label of the source lesson grouping (e.g., "Unit", "Section")
        hasDependency:
          type: array
          items:
            $ref: "#/components/schemas/DependencyTarget"
          description: Lesson groupings that this source has a dependency on (prerequisites)
    DependencyMapResponse:
      type: object
      required:
        - dependencies
        - pagination
      properties:
        dependencies:
          type: array
          items:
            $ref: "#/components/schemas/Dependency"
          description: Dependency relationships between lesson groupings, grouped by source
        pagination:
          $ref: "#/components/schemas/Pagination"
    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
  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
    CaseIdentifierUUIDPath:
      name: caseIdentifierUUID
      in: path
      required: true
      description: CASE Network UUID for the resource
      schema:
        type: string
        format: uuid
    LearningComponentIdentifierPath:
      name: identifier
      in: path
      required: true
      description: Unique identifier for the resource in Knowledge Graph
      schema:
        type: string
    JurisdictionParam:
      name: jurisdiction
      in: query
      required: false
      schema:
        $ref: "#/components/schemas/JurisdictionENUM"
    AcademicSubjectParam:
      name: academicSubject
      in: query
      required: false
      schema:
        $ref: "#/components/schemas/AcademicSubjectENUM"
    GradeLevelParam:
      name: gradeLevel
      in: query
      required: false
      schema:
        type: array
        items:
          $ref: "#/components/schemas/GradeLevelENUM"
      style: form
      explode: true
      example:
        - "9"
        - "10"
    IncludeNonCurrentParam:
      name: includeNonCurrent
      in: query
      required: false
      description: >-
        Include non-current (superseded) standards frameworks in the results. Defaults to false, which returns only current frameworks. When true, retired frameworks are returned alongside current ones (e.g. for lineage or migration use cases). Applies to the standards-frameworks list only.
      schema:
        type: boolean
        default: false
    DurableSkillIdentifierPath:
      name: identifier
      in: path
      required: true
      description: The unique identifier for the durable skill in the Knowledge Graph system
      schema:
        type: string
    DurableSkillsFrameworkIdentifierParam:
      name: frameworkIdentifier
      in: query
      required: true
      description: The identifier of the durable skills framework to retrieve skills from. Obtain this value from the 'identifier' field of GET /durable-skills-frameworks.
      schema:
        type: string
    NormalizedStatementTypeParam:
      name: normalizedStatementType
      in: query
      required: false
      description: Filter by normalized classification. Use this to retrieve only skills (exclude organizational groupings) or to separate different types of framework elements.
      schema:
        $ref: "#/components/schemas/NormalizedStatementTypeENUM"
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication
security:
  - ApiKeyAuth: []
