Clean Bundles

When a media item is removed from Plex, the bundle associated with the item will still exist on the server's drive. To remove the bundle files, the clean bundles API command can be run. This command is the same one that is run from the Clean Bundles option in Plex.


PUT http://{ip_address}:32400/library/clean/bundles?async={async}&X-Plex-Token={plex_token}


ip_addressThe IP address of the Plex Media server.
plex_tokenThe Plex token.
asyncA flag indicating if the API command will be run async. 1 for async, otherwise 0.

Return Status

HTTP CodeDescription
200Success - The request was successful.
401Unauthorized - The Plex token provided was not valid.


No response is returned. You will be able to see the clean bundles API command run from the Plex console.


When the async parameter is set to 1, the status code will be returned immediately, but the command will still be running on the server. By setting the async parameter to 0, the status won't be returned until the command has completed running on the server.

There is also a clean old bundles scheduled task that will do the same thing as this API on a regular basis. You can run the clean old bundles task API command to run it as needed.


curl -X PUT http://{ip_address}:32400/library/clean/bundles?async={async}&X-Plex-Token={plex_token}
import requests
plex_url = http://{ip_address}:32400/library/clean/bundles?async={async}&X-Plex-Token={plex_token}
response = requests.put(plex_url)
$response = Invoke-RestMethod 'http://{ip_address}:32400/library/clean/bundles?async={async}&X-Plex-Token={plex_token}' -Method 'PUT'
Write-Output $response