Plex.tv - Arcanemagus/plex-api GitHub Wiki

URL's

Call URL Description
POST https://plex.tv/users/sign_in.xml Use basic auth to Sign in to plex.tv for validating plex username/password and receive an auth token
POST https://plex.tv/users/sign_in.json Same as above but return data as json
POST https://plex.tv/pins.xml Request a temporary PIN to authenticate
GET https://plex.tv/pins/pin_id.xml Request the Authentication Status of a Pin (pin_id comes from the response of the above POST)

You must provide the following headers: X-Plex-Product X-Plex-Version X-Plex-Client-Identifier And the data: user[login]=login&user[password]=passwd

Request Headers

Header Value
X-Plex-Platform (Platform name, eg iOS, MacOSX, Android, LG, etc)
X-Plex-Platform-Version (Operating system version, eg 4.3.1, 10.6.7, 3.2)
X-Plex-Provides (One or more of [player, controller, server])
X-Plex-Client-Identifier (UUID, serial number, or other number unique per device)
X-Plex-Product (Plex application name, eg Laika, Plex Media Server, Media Link)
X-Plex-Version (Plex application version number)
X-Plex-Device (Device name and model number, eg iPhone3,2, Motorola XOOM™, LG5200TV)
X-Plex-Device-Name (Primary name for the device eg. "Plex Web (Chrome)")

Must be logged in (web/cookie) or pass basic auth

Type URL Description
Get https://plex.tv/devices.xml Gets a list of available clients and servers
Get https://plex.tv/pms/servers.xml Gets a list of servers and their sections. Limited to servers that have remote access enabled
Get https://plex.tv/api/resources Gets a list of servers, devices and their sections
Get https://plex.tv/library/sections?redirect=0 Get cloud Sync Sections
Get https://plex.tv/pms/servers.xml?includeLite=1 Get simple list of servers
Get http://plex.tv/web/translations/en.json Get Translations for example: en
Get https://plex.tv/users/account Get account information
Get https://plex.tv/pms/friends/all Get PMS server shares (?)
Get https://plex.tv/pms/friends/requests Get PMS server share requests (?)
Get https://plex.tv/pms/playlists/queue/unwatched Get Unwatched playlist queue (?)
Get https://plex.tv/pms/playlists/recommendations/unwatched Get Unwatched playlist recommendations (?)
Get https://plex.tv/pms/:/ip Get Current client remote IP
Post https://plex.tv/api/users/validate?invited_email=example_user Validate username or email
Get https://plex.tv/api/v2/home/users List all home users, including guests (Users & Sharing in UI)

Must provide server token from plex.tv/pms/servers.xml

Type URL Description
Get https://plex.tv/?X-Plex-Client-Identifier=unique_id&X-Plex-Product=Plex+Web&X-Plex-Device=OSX&X-Plex-Platform=Chrome&X-Plex-Platform-Version=37.0&X-Plex-Version=2.2.4&X-Plex-Device-Name=Plex+Web+(Chrome)&X-Plex-Token=token Get Cloud Sync server info

Example Output

<MediaContainer publicAddress="<snip>">
  <Device name="Plex Web (Chrome)" publicAddress="" product="Plex Web" productVersion="2.1.5" platform="Chrome" platformVersion="34.0" device="Windows" model="" vendor="" provides="" clientIdentifier="<snip>" version="2.1.5" id="<snip>" createdAt="1387598690" lastSeenAt="1398680926" screenResolution="" screenDensity="">
  </Device>
  <Device name="reallistic-pc" publicAddress="<snip>" product="Plex Media Server" productVersion="0.9.9.10.458-008ea34" platform="Windows" platformVersion="6.2 (Build 9200)" device="" model="" vendor="" provides="server" clientIdentifier="<snip>" version="0.9.9.10.458-008ea34" id="12084527" createdAt="1398136888" lastSeenAt="1398680926" screenResolution="" screenDensity="">
    <Connection uri="http://<snip>:32400"/>
    <Connection uri="http://<snip>:32400"/>
    <Connection uri="http://<snip>:32400"/>
    <Connection uri="http://<snip>:32400"/>
    <Connection uri="http://<snip>:32400"/>
  </Device>
  <Device name="reallistic-pc" publicAddress="<snip>" product="Plex Home Theater" productVersion="1.0.13.222-ff029016" platform="Plex Home Theater" platformVersion="" device="PC" model="Windows" vendor="" provides="player" clientIdentifier="<snip>" version="1.0.13.222-ff029016" id="5200304" createdAt="1377450846" lastSeenAt="1398680910" screenResolution="" screenDensity="">
    <Connection uri="http://<snip>:3005/"/>
    <Connection uri="http://<snip>:3005/"/>
    <Connection uri="http://<snip>:3005/"/>
    <Connection uri="http://<snip>:3005/"/>
  </Device>
........
</MediaContainer>
⚠️ **GitHub.com Fallback** ⚠️