Server Capabilities
This API command is used to get the capabilities of the Plex Media server. The capabilities returned include such items as the settings of the Plex server, the operating system, and the version of Plex that is installed.
URL
GET http://{ip_address}:32400/?X-Plex-Token={plex_token}
Parameters
Name | Description |
---|---|
ip_address | The IP address of the Plex Media server. |
plex_token | The Plex token. |
Return Status
HTTP Code | Description |
---|---|
200 | Success - The request was successful. |
401 | Unauthorized - The Plex token provided was not valid. |
Response
XML string value that lists the capabilities and settings of the server. An example of the XML returned from the request is shown below:
<?xml version="1.0" encoding="UTF-8"?> <MediaContainer size="25" allowCameraUpload="1" allowChannelAccess="1" allowMediaDeletion="1" allowSharing="1" allowSync="1" allowTuners="1" backgroundProcessing="1" companionProxy="1" countryCode="can" diagnostics="logs,databases,streaminglogs" eventStream="1" friendlyName="PlexServer" hubSearch="1" itemClusters="1" livetv="7" machineIdentifier="3a646027a56abd6dbdf72484464db8567c737430" mediaProviders="1" multiuser="1" musicAnalysis="2" myPlex="1" myPlexMappingState="mapped" myPlexSigninState="ok" myPlexSubscription="1" myPlexUsername="PlexUsername" offlineTranscode="1" ownerFeatures="" photoAutoTag="1" platform="Windows" platformVersion="10.0 (Build 19042)" pluginHost="1" pushNotifications="0" readOnlyLibraries="0" streamingBrainABRVersion="3" streamingBrainVersion="2" sync="1" transcoderActiveVideoSessions="0" transcoderAudio="1" transcoderLyrics="1" transcoderPhoto="1" transcoderSubtitles="1" transcoderVideo="1" transcoderVideoBitrates="64,96,208,320,720,1500,2000,3000,4000,8000,10000,12000,20000" transcoderVideoQualities="0,1,2,3,4,5,6,7,8,9,10,11,12" transcoderVideoResolutions="128,128,160,240,320,480,768,720,720,1080,1080,1080,1080" updatedAt="1640814847" updater="1" version="1.25.2.5319-c43dc0277" voiceSearch="1"> <Directory count="1" key="actions" title="actions" /> <Directory count="1" key="activities" title="activities" /> <Directory count="1" key="butler" title="butler" /> <Directory count="1" key="channels" title="channels" /> <Directory count="1" key="clients" title="clients" /> <Directory count="1" key="devices" title="devices" /> <Directory count="1" key="diagnostics" title="diagnostics" /> <Directory count="1" key="hubs" title="hubs" /> <Directory count="3" key="library" title="library" /> <Directory count="3" key="livetv" title="livetv" /> <Directory count="3" key="media" title="media" /> <Directory count="3" key="metadata" title="metadata" /> <Directory count="1" key="neighborhood" title="neighborhood" /> <Directory count="1" key="playQueues" title="playQueues" /> <Directory count="1" key="player" title="player" /> <Directory count="1" key="playlists" title="playlists" /> <Directory count="1" key="resources" title="resources" /> <Directory count="1" key="search" title="search" /> <Directory count="1" key="server" title="server" /> <Directory count="1" key="servers" title="servers" /> <Directory count="1" key="statistics" title="statistics" /> <Directory count="1" key="system" title="system" /> <Directory count="1" key="transcode" title="transcode" /> <Directory count="1" key="updater" title="updater" /> <Directory count="1" key="user" title="user" /> </MediaContainer>
The XML returned lists the capabilities of the server in the attributes of the MediaContainer
element. Each attribute corresponds to a specific capability, and the status of that capability. There isn't actual documentation on each attribute, so the list below is a best-guess at what the values represent.
The attribute values correspond to the following:
Attribute | Description |
---|---|
allowCameraUpload | 1 - server allows camera upload. 0 - server does not allow camera upload. |
allowChannelAccess | 1 - server allows channel access. 0 - server does not allow channel access. |
allowMediaDeletion | 1 - server allows media to be deleted. 0 - server does not allow media to be deleted. |
allowSharing | 1 - server allows sharing. 0 - server does not allow sharing. |
allowSync | 1 - allow syncing content. 0 - don't allow syncing content. |
allowTuners | 1 - server supports DVR tuners and antennas. 0 - server does not support DVR tuners and antennas. |
backgroundProcessing | 1 - server allows tasks to be processed in the background. 0 - server does not allow tasks to be processed in the background. |
companionProxy | 1 - a proxy has been defined. 0 - a proxy has not been defined. |
countryCode | The code of the country where the server is located. |
diagnostics | List of possible diagnostic logging. |
eventStream | 1 - event streaming is enabled 0 - event streaming is not enabled. |
friendlyName | The name of the Plex server. |
hubSearch | 1 - Hub Search is enabled. 0 - Hub Search is not enabled. |
itemClusters | Unknown. |
livetv | Related to Plex being able to stream live TV. The values are unknown. |
machineIdentifier | Unique identifier for the server. |
mediaProviders | Unknown. |
multiuser | 1 - multi-user is enabled 0 - multi-user is not enabled. |
musicAnalysis | Related to analyzing music, but the values are unknown. |
myPlex | 1 - myPlex is enabled on the server 0 - myPlex is not enabled. |
myPlexMappingState | Indicates the mapping state of the server to the myPlex account. |
myPlexSigninState | The current sign in state to the myPlex account. |
myPlexSubscription | 1 - server is using an account with a myPlex subscription. 0 - server is using an account without a myPlex subscription. |
myPlexUsername | Username of the Plex server owner. |
offlineTranscode | 1 - offline transcode is enabled. 0 - offline transcode is not enabled. |
ownerFeatures | List of features allowed by the server owner. This list could be based on the Plex Pass subscription. |
photoAutoTag | 1 - photo auto tagging is enabled. 0 - photo auto tagging is disabled. |
platform | The operating system of the server. |
platformVersion | The version of the operating system. |
pluginHost | Unknown. |
pushNotifications | 1 - allow the server to send push notifications to mobile devices. 0 - do not allow the server to send push notifications to mobile devices. |
readOnlyLibraries | 1 - the libraries are read-only. 0 - the libraries are not read-only. |
streamingBrainABRVersion | The current Streaming Brain ABR version. |
streamingBrainVersion | The current Streaming Brain version. |
sync | 1 - syncing to a device is enabled. 0 - syncing to a device is disabled. |
transcoderActiveVideoSessions | The number of active video transcoding sessions. |
transcoderAudio | 1 - audio transcoding is available. 0 - audio transcoding is not available. |
transcoderLyrics | 1 - lyrics transcoding is available. 0 - lyrics transcoding is not available. |
transcoderPhoto | 1 - photo transcoding is available. 0 - photo transcoding is not available. |
transcoderSubtitles | 1 - subtitle transcoding is available. 0 - subtitle transcoding is not available. |
transcoderVideo | 1 - video transcoding is available. 0 - video transcoding is not available. |
transcoderVideoBitrates | List of supported transcoding video bitrates. |
transcoderVideoQualities | List of supported transcoding video qualities. |
transcoderVideoResolutions | List of supported transcoding video resolutions. |
updatedAt | Date and time of the last server update. |
updater | 1 - Plex updater is enabled 0 - Plex updater is not enabled. |
version | Current version of Plex. |
voiceSearch | 1 - voice search is enabled. 0 - voice search is disabled. |
Within the MediaContainer
element there are multiple additional child elements that provide more details about the functions of the server. These child elements are listed using multiple Directory
elements.
Attribute | Description |
---|---|
count | The number of functions within this element. |
key | The relative URL of the information for the function. |
title | The name of the function. |
Remarks
The values returned in the XML is dependent on the Plex token used to make the request. Using an administrative token may return values that are different when using a managed user token. Using a device token will return the same XML response as the administrative token.
Examples
curl -X GET http://{ip_address}:32400/?X-Plex-Token={plex_token}
import requests plex_url = http://{ip_address}:32400/?X-Plex-Token={plex_token} response = requests.get(plex_url) print(response.text)
$response = Invoke-RestMethod 'http://{ip_address}:32400/?X-Plex-Token={plex_token}' -Method 'GET' Write-Output $response