# Plugins API

Source: https://frameleaf.app/docs/api/reference/plugins/

Use your own server and its scoped API keys.

## List all plugins

GET /api/plugins

Retrieve a list of plugins available to the authenticated user.

```json
{
  "description": "Retrieve a list of plugins available to the authenticated user.",
  "operationId": "searchPlugins",
  "parameters": [
    {
      "name": "description",
      "required": false,
      "in": "query",
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "enabled",
      "required": false,
      "in": "query",
      "description": "Whether the plugin is enabled",
      "schema": {
        "type": "boolean"
      }
    },
    {
      "name": "id",
      "required": false,
      "in": "query",
      "description": "Plugin ID",
      "schema": {
        "format": "uuid",
        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
        "type": "string"
      }
    },
    {
      "name": "name",
      "required": false,
      "in": "query",
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "title",
      "required": false,
      "in": "query",
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "version",
      "required": false,
      "in": "query",
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "items": {
              "$ref": "#/components/schemas/PluginResponseDto"
            },
            "type": "array"
          }
        }
      },
      "description": ""
    }
  },
  "security": [
    {
      "api_key": []
    }
  ],
  "summary": "List all plugins",
  "tags": [
    "Plugins"
  ],
  "x-frameleaf-permission": "plugin.read"
}
```

## Retrieve plugin methods

GET /api/plugins/methods

Retrieve a list of plugin methods

```json
{
  "description": "Retrieve a list of plugin methods",
  "operationId": "searchPluginMethods",
  "parameters": [
    {
      "name": "description",
      "required": false,
      "in": "query",
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "enabled",
      "required": false,
      "in": "query",
      "description": "Whether the plugin method is enabled",
      "schema": {
        "type": "boolean"
      }
    },
    {
      "name": "id",
      "required": false,
      "in": "query",
      "description": "Plugin method ID",
      "schema": {
        "format": "uuid",
        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
        "type": "string"
      }
    },
    {
      "name": "name",
      "required": false,
      "in": "query",
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "pluginName",
      "required": false,
      "in": "query",
      "description": "Plugin name",
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "pluginVersion",
      "required": false,
      "in": "query",
      "description": "Plugin version",
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "title",
      "required": false,
      "in": "query",
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "trigger",
      "required": false,
      "in": "query",
      "description": "Workflow trigger",
      "schema": {
        "$ref": "#/components/schemas/WorkflowTrigger"
      }
    },
    {
      "name": "type",
      "required": false,
      "in": "query",
      "description": "Workflow types",
      "schema": {
        "$ref": "#/components/schemas/WorkflowType"
      }
    }
  ],
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "items": {
              "$ref": "#/components/schemas/PluginMethodResponseDto"
            },
            "type": "array"
          }
        }
      },
      "description": ""
    }
  },
  "security": [
    {
      "api_key": []
    }
  ],
  "summary": "Retrieve plugin methods",
  "tags": [
    "Plugins"
  ],
  "x-frameleaf-permission": "plugin.read"
}
```

## Retrieve workflow templates

GET /api/plugins/templates

Retrieve workflow templates provided by installed plugins

```json
{
  "description": "Retrieve workflow templates provided by installed plugins",
  "operationId": "searchPluginTemplates",
  "parameters": [],
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "items": {
              "$ref": "#/components/schemas/PluginTemplateResponseDto"
            },
            "type": "array"
          }
        }
      },
      "description": ""
    }
  },
  "security": [
    {
      "api_key": []
    }
  ],
  "summary": "Retrieve workflow templates",
  "tags": [
    "Plugins"
  ],
  "x-frameleaf-permission": "plugin.read"
}
```

## Retrieve a plugin

GET /api/plugins/{id}

Retrieve information about a specific plugin by its ID.

```json
{
  "description": "Retrieve information about a specific plugin by its ID.",
  "operationId": "getPlugin",
  "parameters": [
    {
      "name": "id",
      "required": true,
      "in": "path",
      "schema": {
        "format": "uuid",
        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/PluginResponseDto"
          }
        }
      },
      "description": ""
    }
  },
  "security": [
    {
      "api_key": []
    }
  ],
  "summary": "Retrieve a plugin",
  "tags": [
    "Plugins"
  ],
  "x-frameleaf-permission": "plugin.read"
}
```
