---
title: "Load or unload a plugin without restarting fppd, so installing a plugin can take effect and uninstalling one can stop having effect mid-show."
method: POST
path: "/api/fppd/plugin/{PluginName}/{action}"
tags: ["fppd"]
---

# Load or unload a plugin without restarting fppd, so installing a plugin can take effect and uninstalling one can stop having effect mid-show.

`POST /api/fppd/plugin/{PluginName}/{action}`

PluginManager mutates state the main loop walks every tick, and unloading calls into the plugin to stop its threads, so the work is handed to the main loop via a one-shot timer and this thread waits for the result. The wait is bounded: a wedged main loop returns 503 rather than pinning one of drogon's small pool of I/O threads forever. Documented under readable parameter names rather than the positional {1}/{2} drogon registers it as - see the skip list in docs.php.

## Response `200`

The plugin was loaded or unloaded.

- object

## Other responses

- `503` — The main loop did not answer in time; nothing was changed.

---

[API](https://skmtc.net/falconchristmas/apis/fpp-api.md) · [All operations](https://skmtc.net/falconchristmas/apis/fpp-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/falconchristmas/fpp-api/versions/6fa524e15dd4/schema)
