{"owner":"Comfy-Org","repo":"ComfyUI-Manager","hasSpec":true,"specFile":"openapi.yaml","branch":"HEAD","format":"yaml","version":"3.x (YAML)","title":"ComfyUI-Manager","description":"","endpoints":[],"spec":"openapi: 3.1.0\ninfo:\n  title: ComfyUI-Manager API\n  description: |\n    API for ComfyUI-Manager, a comprehensive management tool for ComfyUI custom nodes, models, and components.\n    This API enables programmatic access to node management, model downloading, snapshot operations,\n    and overall system configuration.\n  version: \"3.32.3\"\n  contact:\n    name: ComfyUI-Manager Maintainers\nservers:\n  - url: '/'\n    description: Default ComfyUI server\n\n# Common API components\ncomponents:\n  schemas:\n    Error:\n      type: object\n      properties:\n        error:\n          type: string\n          description: Error message\n          \n    NodePackageMetadata:\n      type: object\n      properties:\n        title:\n          type: string\n          description: Display name of the node package\n        name:\n          type: string\n          description: Repository/package name\n        files:\n          type: array\n          items:\n            type: string\n          description: Source URLs for the package\n        description:\n          type: string\n          description: Description of the node package functionality\n        install_type:\n          type: string\n          enum: [git, copy, pip]\n          description: Installation method\n        version:\n          type: string\n          description: Version identifier\n        id:\n          type: string\n          description: Unique identifier for the node package\n        ui_id:\n          type: string\n          description: ID for UI reference\n        channel:\n          type: string\n          description: Source channel\n        mode:\n          type: string\n          description: Source mode\n        \n    ModelMetadata:\n      type: object\n      properties:\n        name:\n          type: string\n          description: Name of the model\n        type:\n          type: string\n          description: Type of model\n        base:\n          type: string\n          description: Base model type\n        save_path:\n          type: string\n          description: Path for saving the model\n        url:\n          type: string\n          description: Download URL\n        filename:\n          type: string\n          description: Target filename\n        ui_id:\n          type: string\n          description: ID for UI reference\n          \n    SnapshotItem:\n      type: string\n      description: Name of the snapshot\n\n    QueueStatus:\n      type: object\n      properties:\n        total_count:\n          type: integer\n          description: Total number of tasks\n        done_count:\n          type: integer\n          description: Number of completed tasks\n        in_progress_count:\n          type: integer\n          description: Number of tasks in progress\n        is_processing:\n          type: boolean\n          description: Whether the queue is currently processing\n\n    ImportFailInfoBulkRequest:\n      type: object\n      properties:\n        cnr_ids:\n          type: array\n          items:\n            type: string\n          description: A list of CNR IDs to check.\n        urls:\n          type: array\n          items:\n            type: string\n          description: A list of repository URLs to check.\n\n    ImportFailInfoBulkResponse:\n      type: object\n      additionalProperties:\n        $ref: '#/components/schemas/ImportFailInfoItem'\n      description: >-\n        A dictionary where each key is a cnr_id or url from the request,\n        and the value is the corresponding error info.\n\n    ImportFailInfoItem:\n      oneOf:\n        - type: object\n          properties:\n            error:\n              type: string\n            traceback:\n              type: string\n        - type: \"null\"\n\n  securitySchemes:\n    securityLevel:\n      type: apiKey\n      in: header\n      name: Security-Level\n      description: Security level for sensitive operations\n\n  parameters:\n    modeParam:\n      name: mode\n      in: query\n      description: Source mode (e.g., \"local\", \"remote\")\n      schema:\n        type: string\n        enum: [local, remote, default]\n        \n    targetParam:\n      name: target\n      in: query\n      description: Target identifier\n      required: true\n      schema:\n        type: string\n        \n    valueParam:\n      name: value\n      in: query\n      description: New value to set\n      required: true\n      schema:\n        type: string\n\n# API Paths\npaths:\n  # Custom Nodes Endpoints\n  /customnode/getmappings:\n    get:\n      summary: Get node-to-package mappings\n      description: Provides unified mapping between nodes and node packages\n      parameters:\n        - $ref: '#/components/parameters/modeParam'\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            application/json:\n              schema:\n                type: object\n                additionalProperties:\n                  type: array\n                  items:\n                    type: array\n                description: Mapping of node packages to node classes\n\n  /customnode/fetch_updates:\n    post:\n      summary: Check for updates\n      description: Fetches updates for custom nodes\n      requestBody:\n        required: false\n        content:\n          application/json:\n            schema:\n              type: object\n              properties:\n                mode:\n                  type: string\n                  enum: [local, remote, default]\n                  description: Source mode (e.g., \"local\", \"remote\")\n      responses:\n        '200':\n          description: No updates available\n        '201':\n          description: Updates found\n        '400':\n          description: Error occurred\n          \n  /customnode/installed:\n    get:\n      summary: Get installed custom nodes\n      description: Returns a list of installed node packages\n      parameters:\n        - name: mode\n          in: query\n          description: Lists mode, default or imported\n          schema:\n            type: string\n            enum: [default, imported]\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            application/json:\n              schema:\n                type: object\n                additionalProperties:\n                  $ref: '#/components/schemas/NodePackageMetadata'\n                  \n  /customnode/getlist:\n    get:\n      summary: Get custom node list\n      description: Provides a list of available custom nodes\n      parameters:\n        - $ref: '#/components/parameters/modeParam'\n        - name: skip_update\n          in: query\n          description: Skip update check\n          schema:\n            type: boolean\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            application/json:\n              schema:\n                type: object\n                properties:\n                  channel:\n                    type: string\n                  node_packs:\n                    type: object\n                    additionalProperties:\n                      $ref: '#/components/schemas/NodePackageMetadata'\n\n  /customnode/get_node_types_in_workflows:\n    get:\n      summary: List node types used by all user workflows\n      description: Scan through all workflows in the Comfy user directory, and return a list of all node types used in each one.\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            application/json:\n              schema:\n                type: array\n                items:\n                  type: object\n                  properties:\n                    workflow_file_name:\n                      type: string\n                    node_types:\n                      type: array\n                      items:\n                        type: string\n                    \n        '500':\n          description: Error occurred\n                      \n  /customnode/alternatives:\n    get:\n      summary: Get alternative node options\n      description: Provides alternatives for nodes\n      parameters:\n        - $ref: '#/components/parameters/modeParam'\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            application/json:\n              schema:\n                type: object\n                additionalProperties:\n                  type: object\n                  \n  /customnode/versions/{node_name}:\n    get:\n      summary: Get available versions for a node\n      description: Lists all available versions for a specific node\n      parameters:\n        - name: node_name\n          in: path\n          required: true\n          schema:\n            type: string\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            application/json:\n              schema:\n                type: array\n                items:\n                  type: object\n                  properties:\n                    version:\n                      type: string\n        '400':\n          description: Node not found\n          \n  /customnode/disabled_versions/{node_name}:\n    get:\n      summary: Get disabled versions for a node\n      description: Lists all disabled versions for a specific node\n      parameters:\n        - name: node_name\n          in: path\n          required: true\n          schema:\n            type: string\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            application/json:\n              schema:\n                type: array\n                items:\n                  type: object\n                  properties:\n                    version:\n                      type: string\n        '400':\n          description: Node not found\n          \n  /customnode/import_fail_info:\n    post:\n      summary: Get import failure information\n      description: Returns information about why a node failed to import\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              type: object\n              properties:\n                cnr_id:\n                  type: string\n                url:\n                  type: string\n      responses:\n        '200':\n          description: Successful operation\n        '400':\n          description: No information available\n          \n  /v2/customnode/import_fail_info_bulk:\n    post:\n      summary: Get import failure info for multiple nodes\n      description: Retrieves recorded import failure information for a list of custom nodes.\n      tags:\n        - customnode\n      requestBody:\n        description: A list of CNR IDs or repository URLs to check.\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: '#/components/schemas/ImportFailInfoBulkRequest'\n      responses:\n        '200':\n          description: A dictionary containing the import failure information.\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/ImportFailInfoBulkResponse'\n        '400':\n          description: Bad Request. The request body is invalid.\n        '500':\n          description: Internal Server Error.\n        \n  /customnode/install/git_url:\n    post:\n      summary: Install custom node via Git URL\n      description: Installs a custom node from a Git repository URL\n      security:\n        - securityLevel: []\n      requestBody:\n        required: true\n        content:\n          text/plain:\n            schema:\n              type: string\n      responses:\n        '200':\n          description: Installation successful or already installed\n        '400':\n          description: Installation failed\n        '403':\n          description: Security policy violation\n          \n  /customnode/install/pip:\n    post:\n      summary: Install custom node dependencies via pip\n      description: Installs Python package dependencies for custom nodes\n      security:\n        - securityLevel: []\n      requestBody:\n        required: true\n        content:\n          text/plain:\n            schema:\n              type: string\n      responses:\n        '200':\n          description: Installation successful\n        '403':\n          description: Security policy violation\n          \n  # Model Management Endpoints\n  /externalmodel/getlist:\n    get:\n      summary: Get external model list\n      description: Provides a list of available external models\n      parameters:\n        - $ref: '#/components/parameters/modeParam'\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            application/json:\n              schema:\n                type: object\n                properties:\n                  models:\n                    type: array\n                    items:\n                      $ref: '#/components/schemas/ModelMetadata'\n                      \n  # Queue Management Endpoints\n  /manager/queue/update_all:\n    post:\n      summary: Update all custom nodes\n      description: Queues update operations for all installed custom nodes\n      security:\n        - securityLevel: []\n      requestBody:\n        required: false\n        content:\n          application/json:\n            schema:\n              type: object\n              properties:\n                mode:\n                  type: string\n                  enum: [local, remote, default]\n                  description: Source mode (e.g., \"local\", \"remote\")\n      responses:\n        '200':\n          description: Update queued successfully\n        '401':\n          description: Processing already in progress\n        '403':\n          description: Security policy violation\n          \n  /manager/queue/reset:\n    post:\n      summary: Reset queue\n      description: Resets the operation queue\n      responses:\n        '200':\n          description: Queue reset successfully\n          \n  /manager/queue/status:\n    get:\n      summary: Get queue status\n      description: Returns the current status of the operation queue\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/QueueStatus'\n                \n  /manager/queue/install:\n    post:\n      summary: Install custom node\n      description: Queues installation of a custom node\n      security:\n        - securityLevel: []\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: '#/components/schemas/NodePackageMetadata'\n      responses:\n        '200':\n          description: Installation queued successfully\n        '403':\n          description: Security policy violation\n        '404':\n          description: Target node not found or security issue\n          \n  /manager/queue/start:\n    post:\n      summary: Start queue processing\n      description: Starts processing the operation queue\n      responses:\n        '200':\n          description: Processing started\n        '201':\n          description: Processing already in progress\n          \n  /manager/queue/fix:\n    post:\n      summary: Fix custom node\n      description: Attempts to fix a broken custom node installation\n      security:\n        - securityLevel: []\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: '#/components/schemas/NodePackageMetadata'\n      responses:\n        '200':\n          description: Fix operation queued successfully\n        '403':\n          description: Security policy violation\n          \n  /manager/queue/reinstall:\n    post:\n      summary: Reinstall custom node\n      description: Uninstalls and then reinstalls a custom node\n      security:\n        - securityLevel: []\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: '#/components/schemas/NodePackageMetadata'\n      responses:\n        '200':\n          description: Reinstall operation queued successfully\n        '403':\n          description: Security policy violation\n          \n  /manager/queue/uninstall:\n    post:\n      summary: Uninstall custom node\n      description: Queues uninstallation of a custom node\n      security:\n        - securityLevel: []\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: '#/components/schemas/NodePackageMetadata'\n      responses:\n        '200':\n          description: Uninstallation queued successfully\n        '403':\n          description: Security policy violation\n          \n  /manager/queue/update:\n    post:\n      summary: Update custom node\n      description: Queues update of a custom node\n      security:\n        - securityLevel: []\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: '#/components/schemas/NodePackageMetadata'\n      responses:\n        '200':\n          description: Update queued successfully\n        '403':\n          description: Security policy violation\n          \n  /manager/queue/disable:\n    post:\n      summary: Disable custom node\n      description: Disables a custom node without uninstalling it\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: '#/components/schemas/NodePackageMetadata'\n      responses:\n        '200':\n          description: Disable operation queued successfully\n          \n  /manager/queue/update_comfyui:\n    post:\n      summary: Update ComfyUI\n      description: Queues an update operation for ComfyUI itself\n      responses:\n        '200':\n          description: Update queued successfully\n          \n  /manager/queue/install_model:\n    post:\n      summary: Install model\n      description: Queues installation of a model\n      security:\n        - securityLevel: []\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: '#/components/schemas/ModelMetadata'\n      responses:\n        '200':\n          description: Installation queued successfully\n        '400':\n          description: Invalid model request\n        '403':\n          description: Security policy violation\n          \n  # Snapshot Management Endpoints\n  /snapshot/getlist:\n    get:\n      summary: Get snapshot list\n      description: Returns a list of available snapshots\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            application/json:\n              schema:\n                type: object\n                properties:\n                  items:\n                    type: array\n                    items:\n                      $ref: '#/components/schemas/SnapshotItem'\n                      \n  /snapshot/remove:\n    post:\n      summary: Remove snapshot\n      description: Removes a specified snapshot\n      security:\n        - securityLevel: []\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              type: object\n              required: [target]\n              properties:\n                target:\n                  type: string\n                  description: Target identifier\n      responses:\n        '200':\n          description: Snapshot removed successfully\n        '400':\n          description: Error removing snapshot\n        '403':\n          description: Security policy violation\n          \n  /snapshot/restore:\n    post:\n      summary: Restore snapshot\n      description: Restores a specified snapshot\n      security:\n        - securityLevel: []\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              type: object\n              required: [target]\n              properties:\n                target:\n                  type: string\n                  description: Target identifier\n      responses:\n        '200':\n          description: Snapshot restoration scheduled\n        '400':\n          description: Error restoring snapshot\n        '403':\n          description: Security policy violation\n          \n  /snapshot/get_current:\n    get:\n      summary: Get current snapshot\n      description: Returns the current system state as a snapshot\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            application/json:\n              schema:\n                type: object\n        '400':\n          description: Error creating snapshot\n          \n  /snapshot/save:\n    post:\n      summary: Save snapshot\n      description: Saves the current system state as a new snapshot\n      responses:\n        '200':\n          description: Snapshot saved successfully\n        '400':\n          description: Error saving snapshot\n          \n  # ComfyUI Management Endpoints\n  /comfyui_manager/comfyui_versions:\n    get:\n      summary: Get ComfyUI versions\n      description: Returns available and current ComfyUI versions\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            application/json:\n              schema:\n                type: object\n                properties:\n                  versions:\n                    type: array\n                    items:\n                      type: string\n                  current:\n                    type: string\n        '400':\n          description: Error retrieving versions\n          \n  /comfyui_manager/comfyui_switch_version:\n    post:\n      summary: Switch ComfyUI version\n      description: Switches to a specified ComfyUI version\n      requestBody:\n        required: false\n        content:\n          application/json:\n            schema:\n              type: object\n              properties:\n                ver:\n                  type: string\n                  description: Target version\n      responses:\n        '200':\n          description: Version switch successful\n        '400':\n          description: Error switching version\n          \n  /manager/reboot:\n    post:\n      summary: Reboot ComfyUI\n      description: Restarts the ComfyUI server\n      security:\n        - securityLevel: []\n      responses:\n        '200':\n          description: Reboot initiated\n        '403':\n          description: Security policy violation\n          \n  # Configuration Endpoints\n  /manager/preview_method:\n    get:\n      summary: Get or set preview method\n      description: Gets or sets the latent preview method\n      parameters:\n        - name: value\n          in: query\n          required: false\n          description: New preview method\n          schema:\n            type: string\n            enum: [auto, latent2rgb, taesd, none]\n      responses:\n        '200':\n          description: Setting updated or current value returned\n          content:\n            text/plain:\n              schema:\n                type: string\n    post:\n      summary: Set preview method\n      description: Sets the latent preview method (write-only; use GET to read)\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              type: object\n              required: [value]\n              properties:\n                value:\n                  type: string\n                  enum: [auto, latent2rgb, taesd, none]\n                  description: New preview method\n      responses:\n        '200':\n          description: Setting updated\n          content:\n            text/plain:\n              schema:\n                type: string\n        '400':\n          description: Invalid value\n\n\n  /manager/db_mode:\n    get:\n      summary: Get or set database mode\n      description: Gets or sets the database mode\n      parameters:\n        - name: value\n          in: query\n          required: false\n          description: New database mode\n          schema:\n            type: string\n            enum: [channel, local, remote]\n      responses:\n        '200':\n          description: Setting updated or current value returned\n          content:\n            text/plain:\n              schema:\n                type: string\n    post:\n      summary: Set database mode\n      description: Sets the database mode (write-only; use GET to read)\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              type: object\n              required: [value]\n              properties:\n                value:\n                  type: string\n                  enum: [channel, local, remote]\n                  description: New database mode\n      responses:\n        '200':\n          description: Setting updated\n          content:\n            text/plain:\n              schema:\n                type: string\n        '400':\n          description: Invalid value\n\n\n  /manager/policy/component:\n    get:\n      summary: Get or set component policy\n      description: Gets or sets the component policy\n      parameters:\n        - name: value\n          in: query\n          required: false\n          description: New component policy\n          schema:\n            type: string\n      responses:\n        '200':\n          description: Setting updated or current value returned\n          content:\n            text/plain:\n              schema:\n                type: string\n    post:\n      summary: Set component policy\n      description: Sets the component policy (write-only; use GET to read)\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              type: object\n              required: [value]\n              properties:\n                value:\n                  type: string\n                  description: New component policy\n      responses:\n        '200':\n          description: Setting updated\n          content:\n            text/plain:\n              schema:\n                type: string\n\n\n  /manager/policy/update:\n    get:\n      summary: Get or set update policy\n      description: Gets or sets the update policy\n      parameters:\n        - name: value\n          in: query\n          required: false\n          description: New update policy\n          schema:\n            type: string\n            enum: [stable, nightly, nightly-comfyui]\n      responses:\n        '200':\n          description: Setting updated or current value returned\n          content:\n            text/plain:\n              schema:\n                type: string\n    post:\n      summary: Set update policy\n      description: Sets the update policy (write-only; use GET to read)\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              type: object\n              required: [value]\n              properties:\n                value:\n                  type: string\n                  enum: [stable, nightly, nightly-comfyui]\n                  description: New update policy\n      responses:\n        '200':\n          description: Setting updated\n          content:\n            text/plain:\n              schema:\n                type: string\n        '400':\n          description: Invalid value\n\n\n  /manager/channel_url_list:\n    get:\n      summary: Get or set channel URL\n      description: Gets or sets the channel URL for custom node sources\n      parameters:\n        - name: value\n          in: query\n          required: false\n          description: New channel name\n          schema:\n            type: string\n      responses:\n        '200':\n          description: Setting updated or channel list returned\n          content:\n            application/json:\n              schema:\n                type: object\n                properties:\n                  selected:\n                    type: string\n                  list:\n                    type: array\n                    items:\n                      type: object\n                      properties:\n                        name:\n                          type: string\n                        url:\n                          type: string\n    post:\n      summary: Set channel URL\n      description: Sets the channel URL for custom node sources (write-only; use GET to read current + list)\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              type: object\n              required: [value]\n              properties:\n                value:\n                  type: string\n                  description: New channel name\n      responses:\n        '200':\n          description: Setting updated\n          content:\n            text/plain:\n              schema:\n                type: string\n\n\n  # Component Management Endpoints\n  /manager/component/save:\n    post:\n      summary: Save component\n      description: Saves a reusable workflow component\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              type: object\n              properties:\n                name:\n                  type: string\n                workflow:\n                  type: object\n      responses:\n        '200':\n          description: Component saved successfully\n          content:\n            text/plain:\n              schema:\n                type: string\n        '400':\n          description: Error saving component\n          \n  /manager/component/loads:\n    post:\n      summary: Load components\n      description: Loads all available workflow components\n      responses:\n        '200':\n          description: Components loaded successfully\n          content:\n            application/json:\n              schema:\n                type: object\n        '400':\n          description: Error loading components\n          \n  # Miscellaneous Endpoints\n  /manager/version:\n    get:\n      summary: Get manager version\n      description: Returns the current version of ComfyUI-Manager\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            text/plain:\n              schema:\n                type: string\n                \n  /manager/notice:\n    get:\n      summary: Get manager notice\n      description: Returns HTML content with notices and version information\n      responses:\n        '200':\n          description: Successful operation\n          content:\n            text/html:\n              schema:\n                type: string"}