# Plex HTTP API

**URL:** <https://forums.plex.tv/t/plex-http-api/45289>\
**Category:** Dev/API Corner\
**Tags:** other-dev\
**Created:** [October 25, 2013, 7:35am UTC](https://forums.plex.tv/t/plex-http-api/45289 "2013-10-25T07:35:00Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![rolandlondon](https://avatars.discourse-cdn.com/v4/letter/r/43a26b/32.png) [@rolandlondon](https://forums.plex.tv/u/rolandlondon)\
**Post date:** [October 25, 2013, 7:35am UTC](https://forums.plex.tv/t/plex-http-api/45289/1 "2013-10-25T07:35:00Z")

</div>

Hi,

&nbsp;

You have very helpfully published the HTTP/API control here:

&nbsp;

[http://wiki.plexapp.com/index.php/HTTP\_API/Control](http://wiki.plexapp.com/index.php/HTTP_API/Control)

&nbsp;

I'm using this very successfully from [iRule](http://www.iruleathome.com) to control PLEX.

&nbsp;

However looking at Remote Buddy, this program seems to have a far bigger list of control commands for Plex, as you can see from the enclosed screenshot taken from Remote Buddy. Felix must have got them from somewhere. Do you have details for more API commands?

&nbsp;

Hope you can help.

&nbsp;

Thanks,

&nbsp;

Roland

&nbsp;

---

<div class="post-metadata">

**Author:** ![vulcanjedi](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/vulcanjedi/32/113561_2.png) [@vulcanjedi](https://forums.plex.tv/u/vulcanjedi)\
**Post date:** [December 31, 2013, 6:05am UTC](https://forums.plex.tv/t/plex-http-api/45289/2 "2013-12-31T06:05:50Z")

</div>

I'm trying to find the http api call page I think is referenced above on the new support page and can't find it??

---

<div class="post-metadata">

**Author:** ![dane22](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/dane22/32/4389_2.png) [@dane22](https://forums.plex.tv/u/dane22)\
**Post date:** [December 31, 2013, 4:01pm UTC](https://forums.plex.tv/t/plex-http-api/45289/3 "2013-12-31T16:01:05Z")

</div>

> I'm trying to find the http api call page I think is referenced above on the new support page and can't find it??

Not there yet....Plex is still building up the new site.

Sadly though.....the old one is offline as well, so all I can add here is to be patiance

/T

---

<div class="post-metadata">

**Author:** ![vulcanjedi](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/vulcanjedi/32/113561_2.png) [@vulcanjedi](https://forums.plex.tv/u/vulcanjedi)\
**Post date:** [January 2, 2014, 4:31pm UTC](https://forums.plex.tv/t/plex-http-api/45289/4 "2014-01-02T16:31:57Z")

</div>

Personally I like the new look; its cleaner and clearer, but I find that a odd deployment strategy that 'some' pages get converted and release it and then send a notification well after the fact and them some pages remain unported? Fortunately I had a static copy &nbsp;of some bits in a note

HTTP API/Control

&nbsp;

Contents

&nbsp;[hide]

- 
  - [1&nbsp;Basics](http://wiki.plexapp.com/index.php/HTTP_Control_API#Basics)
  - [2&nbsp;Available Controllers and Commands](http://wiki.plexapp.com/index.php/HTTP_Control_API#Available_Controllers_and_Commands)
  - [2.1&nbsp;Navigation](http://wiki.plexapp.com/index.php/HTTP_Control_API#Navigation)
  - [2.1.1&nbsp;Navigation Controller](http://wiki.plexapp.com/index.php/HTTP_Control_API#Navigation_Controller)
  - [2.1.2&nbsp;Navigation Commands](http://wiki.plexapp.com/index.php/HTTP_Control_API#Navigation_Commands)
  - [2.2&nbsp;Playback](http://wiki.plexapp.com/index.php/HTTP_Control_API#Playback)
  - [2.2.1&nbsp;Playback Controller](http://wiki.plexapp.com/index.php/HTTP_Control_API#Playback_Controller)
  - [2.2.2&nbsp;Playback Commands](http://wiki.plexapp.com/index.php/HTTP_Control_API#Playback_Commands)
  - [2.3&nbsp;Application](http://wiki.plexapp.com/index.php/HTTP_Control_API#Application)
  - [2.3.1&nbsp;Application Controller](http://wiki.plexapp.com/index.php/HTTP_Control_API#Application_Controller)
  - [2.3.2&nbsp;Application Commands](http://wiki.plexapp.com/index.php/HTTP_Control_API#Application_Commands)
  - [3&nbsp;Examples](http://wiki.plexapp.com/index.php/HTTP_Control_API#Examples)

[[edit](http://wiki.plexapp.com/index.php?title=HTTP_API/Control&action=edit&section=1)]Basics

Plex allows for the control of some clients (notably, the Mac and Windows desktop "Plex Media Center" clients) via an HTTP Control API. Basically, by using properly-formatted HTTP requests, you can send commands to that client. This could let you do simple things like pause a currently-playing item or more advanced things like arbitrarily playing a particular item.

Commands take the following form:

[http://{server}:32400/system/players/{player}/{controller}/{command}](https://forums.plex.tv/system/players/%7Bplayer%7D/%7Bcontroller%7D/%7Bcommand%7D)

[[edit](http://wiki.plexapp.com/index.php?title=HTTP_API/Control&action=edit&section=2)]Available Controllers and Commands

The following controllers and commands are available:

[[edit](http://wiki.plexapp.com/index.php?title=HTTP_API/Control&action=edit&section=3)]Navigation

[[edit](http://wiki.plexapp.com/index.php?title=HTTP_API/Control&action=edit&section=4)]Navigation Controller

This controller is accessed via the controller keyword "navigation" when sending commands.

[http://MacPro.local:32400/system/players/mac-mini.local/navigation/moveDown](http://MacPro.local:32400/system/players/mac-mini.local/navigation/moveDown)

[[edit](http://wiki.plexapp.com/index.php?title=HTTP_API/Control&action=edit&section=5)]Navigation Commands

The following commands are available for the navigation controller:

[[edit](http://wiki.plexapp.com/index.php?title=HTTP_API/Control&action=edit&section=6)]Playback

[[edit](http://wiki.plexapp.com/index.php?title=HTTP_API/Control&action=edit&section=7)]Playback Controller

This controller is accessed via the controller keyword "playback" when sending commands.

[http://MacPro.local:32400/system/players/mac-mini.local/playback/pause](http://MacPro.local:32400/system/players/mac-mini.local/playback/pause)

[[edit](http://wiki.plexapp.com/index.php?title=HTTP_API/Control&action=edit&section=8)]Playback Commands

The following commands are available for the playback controller:

[[edit](http://wiki.plexapp.com/index.php?title=HTTP_API/Control&action=edit&section=9)]Application

[[edit](http://wiki.plexapp.com/index.php?title=HTTP_API/Control&action=edit&section=10)]Application Controller

This controller is accessed via the controller keyword "application" when sending commands.

[http://MacPro.local:32400/system/players/mac-mini.local/application/sendKey?code=01](http://MacPro.local:32400/system/players/mac-mini.local/application/sendKey?code=01)

[[edit](http://wiki.plexapp.com/index.php?title=HTTP_API/Control&action=edit&section=11)]Application Commands

The following commands are available for the application controller:

Notes:&nbsp;The&nbsp;playMedia&nbsp;command needs a bit more explanation. This command requires two arguments - the path and the key - and has additional optional arguments. The path should be a PMS URL that returns a MediaContainer describing a directory, for example "[http://localhost:32400/library/sections/2/](http://localhost:32400/library/sections/2/)". The key should be the ratingKey attribute of the item within that container that you wish to play. This method has the added benefit of giving Plex enough information to access the metadata of the item rather than just the media (posters and plots show up in the on-screen-display, relationships between tracks within albums are maintained, etc.).

See the examples below to see how some of them work in action.

[[edit](http://wiki.plexapp.com/index.php?title=HTTP_API/Control&action=edit&section=12)]Examples

A simple navigation command to move down in a list of item:

[http://MacPro.local:32400/system/players/mac-mini.local/navigation/moveDown](http://MacPro.local:32400/system/players/mac-mini.local/navigation/moveDown)

&nbsp;

Toggle the on-screen-display menu while watching some media:

[http://192.168.1.4:32400/system/players/mac-mini.local/navigation/toggleOSD](http://192.168.1.4:32400/system/players/mac-mini.local/navigation/toggleOSD)

&nbsp;

Pause an actively-playing item:

[http://MacPro.local:32400/system/players/192.168.1.6/playback/pause](http://MacPro.local:32400/system/players/192.168.1.6/playback/pause)

&nbsp;

Take a small jump back in time for an actively-playing item:

[http://MacPro.local:32400/system/players/mac-mini.local/playback/stepBack](http://MacPro.local:32400/system/players/mac-mini.local/playback/stepBack)

Set the volume to 100%:

[http://MacPro.local:32400/system/players/mac-mini.local/application/setVolume?level=100](http://MacPro.local:32400/system/players/mac-mini.local/application/setVolume?level=100)

&nbsp;

You can get a JPG image of the current client screen:

[http://192.168.1.4:32400/system/players/mac-mini.local/application/screenshot?width=720&height=480&quality=75](http://192.168.1.4:32400/system/players/mac-mini.local/application/screenshot?width=720&height=480&quality=75)

&nbsp;

This is a "dumb" command to simply play a particular library file. Note that it will have no metadata or other information associated with it.

[http://MacPro.local:32400/system/players/192.168.1.6/application/playFile?path=http://mac-mini.local:32400/library/parts/438/file.m4v](http://MacPro.local:32400/system/players/192.168.1.6/application/playFile?path=http://mac-mini.local:32400/library/parts/438/file.m4v)

&nbsp;

Here's a more complicated example that will start playing a particular media item. It includes an offset (in milliseconds), which means that playback starts in the middle - in this case, around 36:33 into the movie.

[http://MacPro.local:32400/system/players/mac-mini.local/application/playMedia?key=/library/metadata/147&path=http://mac-mini.local:32400/library/metadata/147&viewOffset=2193449](http://MacPro.local:32400/system/players/mac-mini.local/application/playMedia?key=/library/metadata/147&path=http://mac-mini.local:32400/library/metadata/147&viewOffset=2193449)

&nbsp;

From \<[http://wiki.plexapp.com/index.php/HTTP\_Control\_API](http://wiki.plexapp.com/index.php/HTTP_Control_API)\> &nbsp;

- 
  - server&nbsp;- The IP address or local host name (e.g. "mac-mini.local") of the media server
  - player&nbsp;- The computer running a Plex client to which you want to issue the remote command. You can get a list of computers running Plex on the network by hitting&nbsp;[http://{server}:32400/clients](https://forums.plex.tv/clients)&nbsp;on the current server. This can be the IP address or local host name (e.g. "mac-mini.local") of the computer.
  - controller&nbsp;- The command controller you wish to use
  - command&nbsp;- The command to issue

  - moveUp
  - moveDown
  - moveLeft
  - moveRight
  - pageUp
  - pageDown
  - nextLetter
  - previousLetter
  - select
  - back
  - contextMenu
  - toggleOSD

  - play
  - pause
  - stop
  - rewind
  - fastForward
  - stepForward
  - bigStepForward
  - stepBack
  - bigStepBack
  - skipNext
  - skipPrevious

  - playFile (accepts the following argument)
  - path
  - playMedia (accepts the following arguments)
  - path
  - key
  - userAgent (optional)
  - httpCookies (optional)
  - viewOffset (optional)
  - screenshot (accepts the following arguments) (does not appear to be working currently)
  - width (default 480)
  - height (default 270)
  - quality (default 75)
  - sendString (accepts the following argument)
  - text=xyz
  - sendKey (accepts the following argument) (does not appear to be working currently)
  - code=01
  - sendVirtualKey (accepts the following argument) (does not appear to be working currently)
  - code=01
  - setVolume (accepts the following argument)
  - level=100

---

<div class="post-metadata">

**Author:** ![Gundy](https://avatars.discourse-cdn.com/v4/letter/g/b782af/32.png) [@Gundy](https://forums.plex.tv/u/Gundy)\
**Post date:** [January 9, 2014, 3:28pm UTC](https://forums.plex.tv/t/plex-http-api/45289/5 "2014-01-09T15:28:51Z")

</div>

Does anyone know where or how to find details on the new Plex Companion API? All I have figured out so far is that [http://plex\_ip:32400/clients](https://forums.plex.tv/clients) yields a list of all currently connected clients. I am working on a little application that is mainly there to control PHT and for now I have been using the XBMC JSON-RPC protocol directly to PHT, but I would like to make this more universal and "plexy".

---

<div class="post-metadata">

**Author:** ![macbee](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/macbee/32/273954_2.png) [@macbee](https://forums.plex.tv/u/macbee)\
**Post date:** [January 27, 2014, 3:50pm UTC](https://forums.plex.tv/t/plex-http-api/45289/6 "2014-01-27T15:50:22Z")

</div>

Hi

The links aren't opening. It takes me to the main Plex Page.&nbsp;

- 
  - [1&nbsp;Basics](http://wiki.plexapp.com/index.php/HTTP_Control_API#Basics "External link")
  - [2&nbsp;Available Controllers and Commands](http://wiki.plexapp.com/index.php/HTTP_Control_API#Available_Controllers_and_Commands "External link")
  - [2.1&nbsp;Navigation](http://wiki.plexapp.com/index.php/HTTP_Control_API#Navigation "External link")
  - [2.1.1&nbsp;Navigation Controller](http://wiki.plexapp.com/index.php/HTTP_Control_API#Navigation_Controller "External link")
  - [2.1.2&nbsp;Navigation Commands](http://wiki.plexapp.com/index.php/HTTP_Control_API#Navigation_Commands "External link")
  - [2.2&nbsp;Playback](http://wiki.plexapp.com/index.php/HTTP_Control_API#Playback "External link")
  - [2.2.1&nbsp;Playback Controller](http://wiki.plexapp.com/index.php/HTTP_Control_API#Playback_Controller "External link")
  - [2.2.2&nbsp;Playback Commands](http://wiki.plexapp.com/index.php/HTTP_Control_API#Playback_Commands "External link")
  - [2.3&nbsp;Application](http://wiki.plexapp.com/index.php/HTTP_Control_API#Application "External link")
  - [2.3.1&nbsp;Application Controller](http://wiki.plexapp.com/index.php/HTTP_Control_API#Application_Controller "External link")
  - [2.3.2&nbsp;Application Commands](http://wiki.plexapp.com/index.php/HTTP_Control_API#Application_Commands "External link")
  - [3&nbsp;Examples](http://wiki.plexapp.com/index.php/HTTP_Control_API#Examples "External link")
  - &nbsp;

---

<div class="post-metadata">

**Author:** ![Gundy](https://avatars.discourse-cdn.com/v4/letter/g/b782af/32.png) [@Gundy](https://forums.plex.tv/u/Gundy)\
**Post date:** [January 28, 2014, 11:59am UTC](https://forums.plex.tv/t/plex-http-api/45289/7 "2014-01-28T11:59:41Z")

</div>

> The links aren't opening. It takes me to the main Plex Page.&nbsp;

Try this:&nbsp;[https://oldwiki.plexapp.com/index.php?title=HTTP\_API/Control](https://oldwiki.plexapp.com/index.php?title=HTTP_API/Control)

---

<div class="post-metadata">

**Author:** ![vulcanjedi](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/vulcanjedi/32/113561_2.png) [@vulcanjedi](https://forums.plex.tv/u/vulcanjedi)\
**Post date:** [March 15, 2014, 7:06am UTC](https://forums.plex.tv/t/plex-http-api/45289/8 "2014-03-15T07:06:35Z")

</div>

The documentation is still lacking, and like the OP, there seems to be a much richer command set available.

---

<div class="post-metadata">

**Author:** ![mjg](https://avatars.discourse-cdn.com/v4/letter/m/6de8d8/32.png) [@mjg](https://forums.plex.tv/u/mjg)\
**Post date:** [April 28, 2014, 1:26am UTC](https://forums.plex.tv/t/plex-http-api/45289/9 "2014-04-28T01:26:19Z")

</div>

Any update on when new documentation will be made available? &nbsp;I've also noticed these commands don't seem to work on many client devices (eg Chromecast, Amazon Fire TV) - is this a limitation of the clients on those devices or am I missing something? &nbsp;When hitting&nbsp;32400/clients the only client device of mine I see is a Roku (even when actively watching content on another device)

---

<div class="post-metadata">

**Author:** ![Grimnar](https://avatars.discourse-cdn.com/v4/letter/g/9e8a1a/32.png) [@Grimnar](https://forums.plex.tv/u/Grimnar)\
**Post date:** [May 5, 2014, 3:21pm UTC](https://forums.plex.tv/t/plex-http-api/45289/10 "2014-05-05T15:21:33Z")

</div>

I only get a 401 when I try to see my clients (when playing video from web/iphone on a localhost)

---

<div class="post-metadata">

**Author:** ![dalberto](https://avatars.discourse-cdn.com/v4/letter/d/f9ae1b/32.png) [@dalberto](https://forums.plex.tv/u/dalberto)\
**Post date:** [May 19, 2014, 4:42pm UTC](https://forums.plex.tv/t/plex-http-api/45289/11 "2014-05-19T16:42:16Z")

</div>

> I only get a 401 when I try to see my clients (when playing video from web/iphone on a localhost)

You probably need to get a Plex Token.

---

<div class="post-metadata">

**Author:** ![sandman\_ave](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/sandman_ave/32/7343_2.png) [@sandman\_ave](https://forums.plex.tv/u/sandman_ave)\
**Post date:** [June 29, 2014, 4:49pm UTC](https://forums.plex.tv/t/plex-http-api/45289/12 "2014-06-29T16:49:55Z")

</div>

Any Update?

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/plex/original/3X/2/a/2acb9765406f63293d357b4ec509ec39aa28f2ad.png) [@system](https://forums.plex.tv/u/system)\
**Post date:** [December 21, 2019, 12:19am UTC](https://forums.plex.tv/t/plex-http-api/45289/13 "2019-12-21T00:19:13Z")

</div>

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
