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

NameDescription
ip_addressThe IP address of the Plex Media server.
plex_tokenThe Plex token.

Return Status

HTTP CodeDescription
200Success - The request was successful.
401Unauthorized - 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:

MediaContainer Attributes
AttributeDescription
allowCameraUpload1 - server allows camera upload.
0 - server does not allow camera upload.
allowChannelAccess1 - server allows channel access.
0 - server does not allow channel access.
allowMediaDeletion1 - server allows media to be deleted.
0 - server does not allow media to be deleted.
allowSharing1 - server allows sharing.
0 - server does not allow sharing.
allowSync1 - allow syncing content.
0 - don't allow syncing content.
allowTuners1 - server supports DVR tuners and antennas.
0 - server does not support DVR tuners and antennas.
backgroundProcessing1 - server allows tasks to be processed in the background.
0 - server does not allow tasks to be processed in the background.
companionProxy1 - a proxy has been defined.
0 - a proxy has not been defined.
countryCodeThe code of the country where the server is located.
diagnosticsList of possible diagnostic logging.
eventStream1 - event streaming is enabled
0 - event streaming is not enabled.
friendlyNameThe name of the Plex server.
hubSearch1 - Hub Search is enabled.
0 - Hub Search is not enabled.
itemClustersUnknown.
livetvRelated to Plex being able to stream live TV. The values are unknown.
machineIdentifierUnique identifier for the server.
mediaProvidersUnknown.
multiuser1 - multi-user is enabled
0 - multi-user is not enabled.
musicAnalysisRelated to analyzing music, but the values are unknown.
myPlex1 - myPlex is enabled on the server
0 - myPlex is not enabled.
myPlexMappingStateIndicates the mapping state of the server to the myPlex account.
myPlexSigninStateThe current sign in state to the myPlex account.
myPlexSubscription1 - server is using an account with a myPlex subscription.
0 - server is using an account without a myPlex subscription.
myPlexUsernameUsername of the Plex server owner.
offlineTranscode1 - offline transcode is enabled.
0 - offline transcode is not enabled.
ownerFeaturesList of features allowed by the server owner. This list could be based on the Plex Pass subscription.
photoAutoTag1 - photo auto tagging is enabled.
0 - photo auto tagging is disabled.
platformThe operating system of the server.
platformVersionThe version of the operating system.
pluginHostUnknown.
pushNotifications1 - allow the server to send push notifications to mobile devices.
0 - do not allow the server to send push notifications to mobile devices.
readOnlyLibraries1 - the libraries are read-only.
0 - the libraries are not read-only.
streamingBrainABRVersionThe current Streaming Brain ABR version.
streamingBrainVersionThe current Streaming Brain version.
sync1 - syncing to a device is enabled.
0 - syncing to a device is disabled.
transcoderActiveVideoSessionsThe number of active video transcoding sessions.
transcoderAudio1 - audio transcoding is available.
0 - audio transcoding is not available.
transcoderLyrics1 - lyrics transcoding is available.
0 - lyrics transcoding is not available.
transcoderPhoto1 - photo transcoding is available.
0 - photo transcoding is not available.
transcoderSubtitles1 - subtitle transcoding is available.
0 - subtitle transcoding is not available.
transcoderVideo1 - video transcoding is available.
0 - video transcoding is not available.
transcoderVideoBitratesList of supported transcoding video bitrates.
transcoderVideoQualitiesList of supported transcoding video qualities.
transcoderVideoResolutionsList of supported transcoding video resolutions.
updatedAtDate and time of the last server update.
updater1 - Plex updater is enabled
0 - Plex updater is not enabled.
versionCurrent version of Plex.
voiceSearch1 - 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.

Directory Attributes
AttributeDescription
countThe number of functions within this element.
keyThe relative URL of the information for the function.
titleThe 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
Subscribe
Display