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

# Search durable skills

> 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)




## OpenAPI

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


    **Key datasets:**

    - **Academic Standards**: Official state standards from all 50 US states
    sourced from 1EdTech's CASE Network

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

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

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


    **Learn more:**

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

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

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

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

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

    - [Quickstart](/knowledge-graph/getting-started/quickstart)
  version: '0'
servers:
  - url: https://api.learningcommons.org/knowledge-graph/v0
    description: Production server
security:
  - ApiKeyAuth: []
tags:
  - name: Academic Standards
    description: Academic standards operations
  - name: Curriculum
    description: Curriculum operations
  - name: Durable Skills
    description: Durable skills frameworks and skills operations
  - name: Hierarchy
    description: Hierarchical navigation operations
  - name: Learning Components
    description: Learning components operations
  - name: Learning Progressions
    description: Learning progressions operations
  - name: Search
    description: Search and discovery operations
  - name: Standards crosswalks
    description: Standards crosswalks operations
paths:
  /durable-skills/search:
    get:
      tags:
        - Durable Skills
        - Search
      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
      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
components:
  parameters:
    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'
  schemas:
    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.
    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
    NormalizedStatementTypeENUM:
      type: string
      description: >-
        Classification label that has been standardized across standards
        frameworks for cross-state queries and categorization
      enum:
        - Standard
        - Standard Grouping
        - Other
    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:
          $ref: '#/components/schemas/NormalizedStatementTypeENUM'
          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
        gradeLevel:
          type: array
          nullable: true
          description: The educational grade level(s) for which this item is intended
          items:
            $ref: '#/components/schemas/GradeLevelENUM'
        jurisdiction:
          $ref: '#/components/schemas/JurisdictionENUM'
          description: >-
            The governing body responsible for publishing this item. Durable
            skills are not state-specific and are published as "Multi-State".
        inLanguage:
          $ref: '#/components/schemas/LanguageENUM'
          description: The language of the content, in BCP 47 format
        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.
    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'
    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
    LanguageENUM:
      type: string
      description: Language used in the resource (BCP 47 format)
      enum:
        - en-US
        - es-US
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication

````