Skip to content

Admin Extensions API

Manage extension installation and access at the server level via the Admin API.

Server-wide extension management - list all extensions, enable/disable them globally, or install new ones from manifest URLs.

List Extensions

GET /api/v1/admin/extensions

Auth: Admin

List all installed extensions and their status across the instance.

Parameters

None.

Response 200

Array of extension objects:

FieldTypeDescription
ext_idstringExtension identifier
namestringDisplay name
versionstringInstalled version
activebooleanWhether extension is enabled server-wide
installedbooleanWhether extension is installed
json
[
  {
    "ext_id": "lnurlp",
    "name": "LNURLp",
    "version": "1.0.0",
    "active": true,
    "installed": true
  },
  {
    "ext_id": "boltz",
    "name": "Boltz",
    "version": "0.5.0",
    "active": false,
    "installed": true
  }
]

Enable / Disable Extension

POST /api/v1/admin/extensions

Auth: Admin

Enable or disable an extension server-wide. When disabled, no user can access it.

Parameters

FieldTypeRequiredDescription
extensionstringYesExtension identifier
activebooleanYestrue to enable, false to disable

Response 200

FieldTypeDescription
ext_idstringExtension identifier
activebooleanUpdated status
json
{
  "ext_id": "lnurlp",
  "active": true
}

Example:

bash
curl -X POST https://your-lnbits.com/api/v1/admin/extensions \
  -H "Authorization: Bearer ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"extension": "lnurlp", "active": false}'

Install from Manifest

POST /api/v1/admin/extensions/install

Auth: Super User

Install an extension from an external manifest URL. This allows installing extensions not in the official registry.

Parameters

FieldTypeRequiredDescription
ext_idstringYesExtension identifier
source_repostringYesManifest URL or repository identifier

Response 200

FieldTypeDescription
ext_idstringExtension identifier
namestringExtension display name
versionstringInstalled version
installedbooleanInstallation status
json
{
  "ext_id": "custom-ext",
  "name": "Custom Extension",
  "version": "0.1.0",
  "installed": true
}

Example:

bash
curl -X POST https://your-lnbits.com/api/v1/admin/extensions/install \
  -H "Authorization: Bearer SUPER_USER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "ext_id": "myext",
    "source_repo": "https://raw.githubusercontent.com/user/repo/main/manifest.json"
  }'

News · Shop · SaaS · Telegram · Released under the MIT License.