Optimize Database

Much of the Plex metadata is stored in a database that is stored on the server. Over time as media items are added or deleted from the Plex server, the database can become fragmented, and contain old data. To cleanup the database, Plex provides the Optimize Database command through both the Web app and the API.

This command is the same one that is run from the Optimize Database option in Plex.


PUT http://[IP address]:32400/library/optimize?async=[Async]&X-Plex-Token=[PlexToken]


IP addressThe IP address of the Plex Media server.
PlexTokenThe temporary authentication 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 optimize database 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 an API command to run the optimize database scheduled task.


Example 1

Run the optimize database command for the Plex server located at IP address of and return immediately:


Example 2

Run the optimize database command for the Plex server located at IP address of, but wait for the command to finish running on the server:


If you would like to keep up to date on the articles, API commands, or blog posts that are published, feel free to subscribe.