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

# Get Node Catalog

> Returns every node type with its parameter JSON Schema, input and output rules, the fields it emits downstream, whether it supports retry, examples, and gotchas. No API key is needed. The response carries an ETag and is cacheable for five minutes; send If-None-Match to get 304 Not Modified.

The node catalog is the machine-readable contract behind the [node types reference](https://docs.lyzr.ai/enterprise/api/superflow/node-types.md). Use the `authoring` profile to check workflows the way a save does, and the `strict` profile when you generate workflows with a model that uses structured output.


## OpenAPI

````yaml openapi/superflow.yaml GET /node-types
openapi: 3.0.3
info:
  title: Lyzr SuperFlow API
  version: '1.0'
  description: >-
    SuperFlow orchestration API covering workflow CRUD, versions and deployment,
    validation, the node catalog, the execution lifecycle (run, pause, resume,
    terminate, rerun), scheduling, and human-in-the-loop approvals. Agent CRUD
    and agent inference are served by the platform API and are not part of this
    surface.
servers:
  - url: https://inference.studio.lyzr.ai/api
security:
  - ApiKeyAuth: []
tags:
  - name: workflows
    description: >-
      Create, read, update, delete, validate, lock, and share workflow
      definitions.
  - name: workflow-versions
    description: Save the draft as a version and choose which version production runs.
  - name: node-catalog
    description: The contract for every node type, used to build and validate workflows.
  - name: workflow-execution
    description: Run workflows and control the execution lifecycle.
  - name: workflow-schedules
    description: Cron-driven recurring triggers for stored workflows.
  - name: approvals
    description: Human-in-the-loop approval requests raised by running workflows.
paths:
  /node-types:
    get:
      tags:
        - node-catalog
      summary: Get the node catalog
      description: >-
        Returns every node type with its parameter JSON Schema, input and output
        rules, the fields it emits downstream, whether it supports retry,
        examples, and gotchas. No API key is needed. The response carries an
        ETag and is cacheable for five minutes; send If-None-Match to get 304
        Not Modified.
      operationId: getNodeTypes
      parameters:
        - name: profile
          in: query
          description: >-
            Which parameter schema to return. full is the resolved parameter
            shape. authoring also accepts expression strings and null or empty
            strings for optional fields, and is what saved workflows are
            validated against. strict is the subset every LLM structured-output
            implementation accepts, for generating workflows with a model.
          schema:
            type: string
            enum:
              - full
              - authoring
              - strict
        - name: If-None-Match
          in: header
          description: An ETag from a previous response.
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NodeCatalogResponse'
        '304':
          description: Not Modified
      security: []
components:
  schemas:
    NodeCatalogResponse:
      type: object
      properties:
        version:
          type: string
          example: v1-e7ba67a4e172
        engine:
          type: string
          description: The build of the workflow engine that served the catalog.
        profile:
          type: string
          enum:
            - full
            - authoring
            - strict
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/NodeTypeDefinition'
    NodeTypeDefinition:
      type: object
      properties:
        type:
          type: string
          example: lyzr-nodes-base.lyzr.decide
        label:
          type: string
          example: Decide
        category:
          type: string
          example: AI
        description:
          type: string
        version:
          type: number
        parameters:
          type: object
          description: JSON Schema for the node's parameters, in the requested profile.
        inputs:
          type: object
          description: How many inputs the node accepts.
        outputs:
          type: array
          description: The node's output handles.
          items:
            type: object
        outputKind:
          type: string
        outputFields:
          type: array
          description: The fields the node emits downstream.
          items:
            type: object
            properties:
              name:
                type: string
              type:
                type: string
        retryable:
          type: boolean
          description: Whether the node supports per-node retry.
        examples:
          type: array
          items: {}
        gotchas:
          type: array
          items:
            type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Lyzr API key. Studio session keys (agk_, ags_) and durable sk- keys are
        accepted. Required on every endpoint except GET /node-types and a
        webhook-triggered execute that carries X-Webhook-Secret.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.