Create a Playlist

Each user on a Plex server can create their own playlists. A playlist can contain either videos, music, or photos, and can't be shared with other users. There are smart and non-smart playlists. This API command will create a non-smart playlist for a user.


POST http://{ip_address}:32400/playlists?type={type}&title={title}&smart={smart}&uri=server://{machine_id}/com.plexapp.plugins.library/{library_id}?X-Plex-Token={plex_token}


ip_addressThe IP address of the Plex Media server.
plex_tokenThe Plex user token.
typeThe type of playlist to be created. Valid values: audio, video, photo.
titleThe name of the playlist.
smartIndicates the playlist is smart or not. Valid values: 0 (non-smart), 1 (smart).
machine_idThe ID associated with the Plex server. Can be found by calling the Server Identity command and getting the machineIdentifier attribute value.
library_idThe key associated with the library item to be added to the playlist. See below for information on this value.

Return Status

HTTP CodeDescription
200Success - The request was successful.
400Bad request - A parameter is missing.
401Unauthorized - The Plex token provided is not valid.
500Internal server error - A parameter value is not valid.


XML string value that provides details of the playlist that was just created. An example of the XML return value is shown below:

    <?xml version="1.0" encoding="UTF-8"?>
    <MediaContainer size="1">
        <Playlist ratingKey="289130" key="/playlists/289130/items" guid="com.plexapp.agents.none://aa1ce6fe-b6f3-48c5-bd4f-23df120ee1f8" type="playlist" title="My Playlist" summary="" smart="0" playlistType="video" composite="/playlists/279131/composite/1786162547" icon="playlist://" duration="4246000" leafCount="1" addedAt="1684162647" updatedAt="1684162647"></Playlist>

The XML return provides information on the new playlist. The root is the MediaContainer element. This element contains a single attribute indicating that one playlist has been returned from the server.

MediaContainer Attributes
sizeThe number of playlists returned.

Within the MediaContainer there is one Playlist child element. The Playlist element contains information on the new playlist on the Plex server.

Playlist Attributes
ratingKeyA key associated with the playlist.
keyThe relative URL of the items in the playlist. This URL returns information about the items in the playlist.
guidThe unique identifier comprised of the Plex agent and playlist identifier for the agent.
typeThe type of media.
titleThe title of the playlist.
summaryA description of the playlist. This can be changed by editing the playlist from within Plex after it has been created.
smart1 - playlist is a smart playlist.
0 - playlist is not a smart playlist.
playlistTypevideo - playlist contains videos/movies.
audio - playlist contains audio/music.
photo - playlist contains photos.
compositeThe URL of the image used to represent the playlist.
iconIcon used for smart playlists. Not used for non-smart playlists.
durationThe total duration, in milliseconds, of the number of items in the playlist. This value doesn't exist for photo playlists.
leafCountNumber of items in the playlist.
addedAtThe date and time, in Unix time, the playlist was added to the library.
updatedAtThe date and time in epoch time, the playlist was updated in the library.


Library key parameter

The Library Key parameter value can be found if you access the Plex server from the Web app.

When you hover over any item - movie, TV show, music, photo, etc. there will be a key parameter in the URL. That key value is the value you will use for the Library Key parameter.

The value is easy to find in the URL of the item. It has the structure /library/metadata/{id}. You will use the entire value of the key parameter from the media item URL.

Playlist type

The type parameter should indicate the type of media that will be in the playlist. A playlist cannot have different media types. This means that a playlist can only contain either videos, music or photos, but not more than one type.

If the value of the type parameter does not match the media item specified in the uri parameter, the playlist type will be the same as the media item.

For example, if the type parameter value is video but the media item type in the uri parameter is a photo, the playlist will be a photo playlist and not a video playlist. The response XML will indicate the proper playlist type.

If a video was added to that same playlist, a new video playlist with the same name will be created for videos.

The type parameter must be provided or a 400 - Bad Request will be returned and the playlist won't be created.

Smart playlist

The command and parameters explained on this page are used for creating non-smart playlists in Plex. If you use the same command but set the smart parameter to 1 you will create an empty playlist.

The API request for submitting a smart playlist is similar, but is different with regards to parameters.


curl -X POST http://{ip_address}:32400/playlists?type={type}&title={title}&smart={smart}&uri=server://{machine_id}/com.plexapp.plugins.library/{library_id}?X-Plex-Token={plex_token}
import requests
plex_url = http://{ip_address}:32400/playlists?type={type}&title={title}&smart={smart}&uri=server://{machine_id}/com.plexapp.plugins.library/{library_id}?X-Plex-Token={plex_token}
response =
$response = Invoke-RestMethod 'http://{ip_address}:32400/playlists?type={type}&title={title}&smart={smart}&uri=server://{machine_id}/com.plexapp.plugins.library/{library_id}?X-Plex-Token={plex_token}' -Method 'POST'
Write-Output $response