Obsidian SDK

Plugins

Auto-generated API documentation.

Plugins Service

Manage Obsidian plugins - list, install, enable, disable, and uninstall.

Service Overview

The Plugins service provides comprehensive plugin management including listing installed plugins, enabling/disabling plugins, installing from the community, and managing plugin lifecycle.

Base URL

/api/platform/plugins
/api/platform/plugin

Endpoints


GET /api/platform/plugins

List all installed plugins.

CLI Command: obsidian plugins

Query Parameters:

ParameterTypeRequiredDescription
versionsbooleanNoInclude plugin versions
filterstringNoFilter by plugin ID
vaultstringNoTarget vault name

Example Request:

curl "http://localhost:3000/api/platform/plugins?vault=youtube"

Example Response:

{
  "success": true,
  "data": {
    "type": "list",
    "data": [
      "audio-recorder",
      "backlink",
      "bookmarks",
      "canvas",
      "daily-notes",
      "file-explorer",
      "graph",
      "sync",
      "workspaces"
    ]
  }
}

With versions:

curl "http://localhost:3000/api/platform/plugins?versions=true&vault=youtube"

GET /api/platform/plugins/enabled

List all currently enabled plugins.

CLI Command: obsidian plugins:enabled

Example Request:

curl "http://localhost:3000/api/platform/plugins/enabled?vault=youtube"

Example Response:

{
  "success": true,
  "data": {
    "type": "list",
    "data": [
      "audio-recorder",
      "backlink",
      "bookmarks",
      "daily-notes",
      "file-explorer"
    ]
  }
}

GET /api/platform/plugin/:id

Get information about a specific plugin.

CLI Command: obsidian plugin

URL Parameters:

ParameterTypeRequiredDescription
idstringYesPlugin ID

Example Request:

curl "http://localhost:3000/api/platform/plugin/calendar?vault=youtube"

Example Request:

curl -X POST "http://localhost:3000/api/platform/plugin/calendar/enable?vault=youtube" \
  -H "Content-Type: application/json" \
  -d '{}'

Example Response:

{
  "success": true,
  "data": "Plugin enabled: calendar"
}

POST /api/platform/plugin/:id/disable

Disable a plugin.

CLI Command: obsidian plugin:disable

URL Parameters:

ParameterTypeRequiredDescription
idstringYesPlugin ID

Request Body:

ParameterTypeRequiredDescription
filterstringNoFilter for plugin search
vaultstringNoTarget vault name

Example Request:

curl -X POST "http://localhost:3000/api/platform/plugin/calendar/disable?vault=youtube" \
  -H "Content-Type: application/json" \
  -d '{}'

Example Request:

curl -X POST "http://localhost:3000/api/platform/plugin/obsidian-iconizer/install?vault=youtube" \
  -H "Content-Type: application/json" \
  -d '{"enable": true}'

Example Request:

curl -X DELETE "http://localhost:3000/api/platform/plugin/obsidian-iconizer?vault=youtube"

Example Request:

curl -X POST "http://localhost:3000/api/platform/plugin/calendar/reload?vault=youtube" \
  -H "Content-Type: application/json" \
  -d '{}'
# Get all plugins
PLUGINS=$(curl -s "http://localhost:3000/api/platform/plugins?vault=youtube" | jq -r '.data.data[]')

# Disable each
for plugin in $PLUGINS; do
  case "$plugin" in
    "file-explorer"|"editor-status"|"switcher"|"command-palette")
      echo "Skipping essential: $plugin"
      ;;
    *)
      curl -X POST "http://localhost:3000/api/platform/plugin/$plugin/disable?vault=youtube" \
        -H "Content-Type: application/json" -d '{}'
      ;;
  esac
done
# Compare all vs enabled
ALL=$(curl -s "http://localhost:3000/api/platform/plugins?vault=youtube" | jq -r '.data.data[]')
ENABLED=$(curl -s "http://localhost:3000/api/platform/plugins/enabled?vault=youtube" | jq -r '.data.data[]')

echo "$ALL" | grep -v "$ENABLED"

On this page