Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PLEX_URLYesThe URL of your Plex media server (e.g., http://127.0.0.1:32400)
PLEX_TOKENYesYour Plex authentication token (X-Plex-Token)

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
create_actions_add_to_watchlistB

Add to Watchlist.

POST /actions/addToWatchlist

Args: uri: The URI of the item to add or remove

create_actions_remove_from_watchlistC

Remove from Watchlist.

POST /actions/removeFromWatchlist

Args: uri: The URI of the item to add or remove

create_auth_jwkB

Register Device JWK.

POST /auth/jwk

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

create_auth_tokenC

Exchange JWT Token.

POST /auth/token

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

create_butlerA

Start all Butler tasks.

POST /butler

create_butler_by_butler_taskC

Start a single Butler task.

POST /butler/{butlerTask}

Args: butler_task: The task name

create_by_transcode_type_transcode_universal_fallbackC

Manually trigger a transcoder fallback.

POST /{transcodeType}/:/transcode/universal/fallback

Args: transcode_type: Path parameter.

create_download_queueB

Create download queue.

POST /downloadQueue

create_download_queue_by_queue_id_addC

Add to download queue.

POST /downloadQueue/{queueId}/add

Args: queue_id: The queue id keys: Keys to add

create_download_queue_by_queue_id_items_by_item_id_restartB

Restart processing of items from the decision.

POST /downloadQueue/{queueId}/items/{itemId}/restart

Args: queue_id: The queue id item_id: The item ids

create_home_usersB

Create Home User.

POST /home/users

create_home_users_by_id_switchC

Switch Home User.

POST /home/users/{id}/switch

Args: id: The unique identifier of the item

create_hubs_sections_by_section_id_manageC

Create a custom hub.

POST /hubs/sections/{sectionId}/manage

Args: section_id: The section ID for the hubs to reorder metadata_item_id: The metadata item on which to base this hub. This must currently be a collection promoted_to_recommended: Whether this hub should be displayed in recommended promoted_to_own_home: Whether this hub should be displayed in admin's home promoted_to_shared_home: Whether this hub should be displayed in shared user's home

create_library_collectionsB

Create collection.

POST /library/collections

Args: section_id: The section where this collection will be created uri: The URI for processing the smart collection. Required for a smart collection

create_library_fileB

Ingest a transient item.

POST /library/file

Args: url: The file of the file to ingest. virtual_file_path: A virtual path to use when the url is opaque. compute_hashes: Whether or not to compute Plex and OpenSubtitle hashes for the file. Defaults to 0. ingest_non_matches: Whether or not non matching media should be stored. Defaults to 0.

create_library_metadata_by_id_artsB

Upload media art Art.

POST /library/metadata/{id}/arts

Args: id: The unique identifier of the item body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

create_library_metadata_by_id_postersB

Upload media art Poster.

POST /library/metadata/{id}/posters

Args: id: The unique identifier of the item body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

create_library_metadata_by_ids_by_elementA

Set an item's artwork, theme, etc.

POST /library/metadata/{ids}/{element}

Args: ids: Comma-separated list of IDs element: The type of artwork element (e.g., art, poster, thumb) url: The url of the new asset. If not provided, the binary of the asset must be provided in the post body.

create_library_metadata_by_ids_extrasC

Add to an item's extras.

POST /library/metadata/{ids}/extras

Args: ids: Comma-separated list of IDs extra_type: The metadata type of the extra url: The URL of the extra

create_library_metadata_by_ids_markerC

Create a marker.

POST /library/metadata/{ids}/marker

Args: ids: Comma-separated list of IDs type: The type of marker to edit/create start_time_offset: The start time of the marker end_time_offset: The end time of the marker attributes: The attributes to assign to this marker

create_library_optimizeC

Optimize Library.

POST /library/optimize

create_library_sections_allB

Add a library section.

POST /library/sections/all

Args: name: The name of the new section type: The type of library section scanner: The scanner this section should use agent: The agent this section should use for metadata metadata_agent_provider_group_id: The agent group id for this section language: The language of this section locations: The locations on disk to add to this section prefs: The preferences for this section relative: If set, paths are relative to Media Upload path import_fromi_tunes: If set, import media from iTunes.

create_library_sections_by_section_id_empty_trashC

Empty Trash.

POST /library/sections/{sectionId}/emptyTrash

Args: section_id: The unique identifier of the library section

create_library_sections_by_section_id_optimizeC

Optimize Section.

POST /library/sections/{sectionId}/optimize

Args: section_id: The unique identifier of the library section

create_library_sections_by_section_id_refreshB

Refresh Section.

POST /library/sections/{sectionId}/refresh

Args: section_id: Section identifier force: Whether the update of metadata and items should be performed even if modification dates indicate the items have not change path: Restrict refresh to the specified path

create_library_sections_refreshB

Refresh all sections.

POST /library/sections/refresh

Args: force: Force refresh of metadata

create_livetv_dvrsC

Create a DVR.

POST /livetv/dvrs

Args: lineup: The EPG lineup. device: The device. language: The language.

create_livetv_dvrs_by_dvr_id_channels_by_channel_tuneB

Tune a channel on a DVR.

POST /livetv/dvrs/{dvrId}/channels/{channel}/tune

Args: dvr_id: The ID of the DVR. channel: The channel ID to tune

create_livetv_dvrs_by_dvr_id_reload_guideB

Tell a DVR to reload program guide.

POST /livetv/dvrs/{dvrId}/reloadGuide

Args: dvr_id: The ID of the DVR.

create_logA

Logging a multi-line message to the Plex Media Server log.

POST /log

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

create_log_networkedB

Enabling Papertrail.

POST /log/networked

Args: minutes: The number of minutes logging should be sent to Papertrail

create_media_grabbers_devicesC

Add a device.

POST /media/grabbers/devices

Args: uri: The URI of the device.

create_media_grabbers_devices_by_device_id_scanB

Tell a device to scan for channels.

POST /media/grabbers/devices/{deviceId}/scan

Args: device_id: The ID of the device. source: A valid source for the scan

create_media_providersA

Add a media provider.

POST /media/providers

Args: url: The URL of the media provider to add.

create_media_providers_refreshB

Refresh media providers.

POST /media/providers/refresh

create_media_subscriptionsA

Create a subscription.

POST /media/subscriptions

Args: target_library_section_id: The library section into which we'll grab the media. Not actually required when the subscription is to a playlist. target_section_location_id: The section location into which to grab. type: The type of the thing we're subscribing too (e.g. show, season). hints: Hints describing what we're looking for. Note: The hint ratingKey is required for downloading from a PMS remote. prefs: Subscription preferences. params: Subscription parameters.

  • mediaProviderID: Required for downloads to indicate which MP the subscription will download into

  • source: Required for downloads to indicate the source of the downloaded content.

create_media_subscriptions_processB

Process all subscriptions.

POST /media/subscriptions/process

create_myplex_claimB

Claim Server.

POST /myplex/claim

create_pinsB

Create OAuth PIN.

POST /pins

create_pins_xmlA

Create Legacy PIN.

POST /pins.xml

create_play_queuesA

Create a play queue.

POST /playQueues

Args: uri: The content URI for what we're playing. playlist_id: the ID of the playlist we're playing. type: The type of play queue to create key: The key of the first item to play, defaults to the first in the play queue. shuffle: Whether to shuffle the playlist, defaults to 0. repeat: If the PQ is bigger than the window, fill any empty space with wraparound items, defaults to 0. continuous: Whether to create a continuous play queue (e.g. from an episode), defaults to 0. extras_prefix_count: Number of trailers to prepend a movie with not including the pre-roll. If omitted the pre-roll will not be returned in the play queue. When resuming a movie extrasPrefixCount should be omitted as a parameter instead of passing 0. recursive: Only applies to queues of type photo, whether to retrieve all descendent photos from an album or section, defaults to 1. on_deck: Only applies to queues of type show or seasons, whether to return a queue that is started on the On Deck episode if one exists. Otherwise begins the play queue on the beginning of the show or season.

create_player_playback_audio_streamD

Player Audio Stream.

POST /player/playback/audioStream

Args: stream_id: The unique identifier of the stream

create_player_playback_muteC

Player Mute.

POST /player/playback/mute

create_player_playback_pauseB

Player Pause.

POST /player/playback/pause

create_player_playback_playC

Player Play.

POST /player/playback/play

create_player_playback_play_mediaB

Player Play Media.

POST /player/playback/playMedia

Args: key: The key of the media item to play offset: The byte offset for stream seeking machine_identifier: The machine identifier of the target device

create_player_playback_refresh_play_queueC

Player Refresh Play Queue.

POST /player/playback/refreshPlayQueue

create_player_playback_seekC

Player Seek.

POST /player/playback/seek

Args: offset: Target offset in milliseconds

create_player_playback_set_parametersC

Player Set Parameters.

POST /player/playback/setParameters

Args: shuffle: Whether to enable shuffle mode repeat: The repeat mode to set volume: The volume level to set

create_player_playback_set_ratingC

Player Set Rating.

POST /player/playback/setRating

Args: rating: The rating value to set

create_player_playback_set_stateC

Player Set State.

POST /player/playback/setState

Args: state: The desired playback state

create_player_playback_set_streamsC

Player Set Streams.

POST /player/playback/setStreams

Args: audio_stream_id: The unique identifier of the audiostream subtitle_stream_id: The unique identifier of the subtitlestream video_stream_id: The unique identifier of the videostream

create_player_playback_set_text_streamC

Player Set Text Stream.

POST /player/playback/setTextStream

Args: stream_id: The unique identifier of the stream

create_player_playback_set_view_offsetC

Player Set View Offset.

POST /player/playback/setViewOffset

Args: offset: The byte offset for stream seeking

create_player_playback_skip_byB

Player Skip By.

POST /player/playback/skipBy

Args: offset: Number of items to skip (positive for forward, negative for backward)

create_player_playback_skip_toC

Player Skip To.

POST /player/playback/skipTo

Args: key: The key of the item to skip to

create_player_playback_step_backB

Player Step Back.

POST /player/playback/stepBack

create_player_playback_step_forwardB

Player Step Forward.

POST /player/playback/stepForward

create_player_playback_stopC

Player Stop.

POST /player/playback/stop

create_player_playback_subtitle_streamC

Player Subtitle Stream.

POST /player/playback/subtitleStream

Args: stream_id: The unique identifier of the stream

create_player_playback_unmuteC

Player Unmute.

POST /player/playback/unmute

create_player_playback_video_streamC

Player Video Stream.

POST /player/playback/videoStream

Args: stream_id: The unique identifier of the stream

create_player_playback_volumeD

Player Volume.

POST /player/playback/volume

Args: level: The level

create_playlistsB

Create a Playlist.

POST /playlists

Args: uri: The content URI for what we're playing (e.g. library://...). play_queue_id: To create a playlist from an existing play queue.

create_playlists_uploadA

Upload media art.

POST /playlists/upload

Args: path: Absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server. If the path argument is a directory, that path will be scanned for playlist files to be processed. Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it. The GUID of each playlist is based on the filename. If the path argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it. The GUID of each playlist is based on the filename. force: Force overwriting of duplicate playlists. By default, a playlist file uploaded with the same path will overwrite the existing playlist. The force argument is used to disable overwriting. If the force argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.

create_security_tokenB

Get Transient Tokens.

POST /security/token

Args: type: The value delegation is the only supported type parameter. scope: The value all is the only supported scope parameter.

create_servers_by_machine_id_shared_serversC

Share Server (Legacy v1).

POST /servers/{machineId}/shared_servers

Args: machine_id: The unique machine identifier of the server

create_shared_serversC

Share Server.

POST /shared_servers

create_status_sessions_terminateA

Terminate a session.

POST /status/sessions/terminate

Args: session_id: The session id (found in the Session element in /status/sessions) reason: The reason to give to the user (typically displayed in the client)

create_timelineA

Report media timeline.

POST /:/timeline

Args: key: The details key for the item. rating_key: The rating key attribute for the item. state: The current state of the media. play_queue_item_id: If playing media from a play queue, the play queue's ID. time: The current time offset of playback in ms. duration: The total duration of the item in ms. continuing: When state is stopped, a flag indicating whether or not the client is going to continue playing anothe item. updated: Used when a sync client comes online and is syncing media timelines, holds the time at which the playback state was last updated. offline: Also used by sync clients, used to indicate that a timeline is being synced from being offline, as opposed to being "live". time_to_first_frame: Time in seconds till first frame is displayed. Sent only on the first playing timeline request. time_stalled: Time in seconds spent buffering since last request. bandwidth: Bandwidth in kbps as estimated by the client. buffered_time: Amount of time in seconds buffered by client. Omit if computed by bufferedSize below. buffered_size: Size in kilobytes of data buffered by client. Omit if computed by bufferedTime above container_key: Groups timeline reports (e.g. /playQueues/123). guid: Global unique identifier for the item. play_queue_id: Identifies the play queue itself (distinct from playQueueItemID). url: Alternative to key/ratingKey (legacy).

create_users_passwordB

Change Password.

POST /users/password

create_users_signinC

Get User Sign In Data.

POST /users/signin

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

create_v2_user_webhooksC

Add User Webhook.

POST /api/v2/user/webhooks

create_webhooksB

Add Webhook.

POST /webhooks

delete_activities_by_activity_idA

Cancel a running activity.

DELETE /activities/{activityId}

Args: activity_id: The UUID of the activity to cancel.

delete_butlerA

Stop all Butler tasks.

DELETE /butler

delete_butler_by_butler_taskA

Stop a single Butler task.

DELETE /butler/{butlerTask}

Args: butler_task: The task name

delete_download_queue_by_queue_id_items_by_item_idC

Delete download queue items.

DELETE /downloadQueue/{queueId}/items/{itemId}

Args: queue_id: The queue id item_id: The item id

delete_home_users_by_user_idA

Delete Home User.

DELETE /home/users/{userId}

Args: user_id: The unique identifier of the user

delete_hubs_sections_by_section_id_manageB

Reset hubs to defaults.

DELETE /hubs/sections/{sectionId}/manage

Args: section_id: The section ID for the hubs to reorder

delete_hubs_sections_by_section_id_manage_by_identifierA

Delete a custom hub.

DELETE /hubs/sections/{sectionId}/manage/{identifier}

Args: section_id: The section ID for the hubs to change identifier: The identifier of the hub to change

delete_library_cachesB

Delete library caches.

DELETE /library/caches

delete_library_metadata_by_idsB

Delete a metadata item.

DELETE /library/metadata/{ids}

Args: ids: Comma-separated list of IDs proxy: Whether proxy items, such as media optimized versions, should also be deleted. Defaults to false.

delete_library_metadata_by_ids_marker_by_markerB

Delete a marker.

DELETE /library/metadata/{ids}/marker/{marker}

Args: ids: Comma-separated list of IDs marker: The marker identifier

delete_library_metadata_by_ids_media_by_media_itemB

Delete a media item.

DELETE /library/metadata/{ids}/media/{mediaItem}

Args: ids: Comma-separated list of IDs media_item: The mediaItem proxy: Whether proxy items, such as media optimized versions, should also be deleted. Defaults to false.

delete_library_sections_all_refreshB

Stop refresh.

DELETE /library/sections/all/refresh

delete_library_sections_by_section_idA

Delete a library section.

DELETE /library/sections/{sectionId}

Args: section_id: The section identifier async_: If set, response will return an activity with the actual deletion process. Otherwise request will return when deletion is complete

delete_library_sections_by_section_id_collection_by_collection_idB

Delete a collection.

DELETE /library/sections/{sectionId}/collection/{collectionId}

Args: section_id: Section identifier collection_id: Collection Id

delete_library_sections_by_section_id_indexesD

Delete section indexes.

DELETE /library/sections/{sectionId}/indexes

Args: section_id: Section identifier

delete_library_sections_by_section_id_introsC

Delete section intro markers.

DELETE /library/sections/{sectionId}/intros

Args: section_id: Section identifier

delete_library_sections_by_section_id_refreshC

Cancel section refresh.

DELETE /library/sections/{sectionId}/refresh

Args: section_id: Section identifier

delete_library_streams_by_stream_id_extC

Delete a stream.

DELETE /library/streams/{streamId}.{ext}

Args: stream_id: The id of the stream ext: This is not a part of this endpoint but documented here to satisfy OpenAPI

delete_livetv_dvrs_by_dvr_idB

Delete a single DVR.

DELETE /livetv/dvrs/{dvrId}

Args: dvr_id: The ID of the DVR.

delete_livetv_dvrs_by_dvr_id_devices_by_device_idB

Remove a device from an existing DVR.

DELETE /livetv/dvrs/{dvrId}/devices/{deviceId}

Args: dvr_id: The ID of the DVR. device_id: The ID of the device to add.

delete_livetv_dvrs_by_dvr_id_lineupsB

Delete a DVR Lineup.

DELETE /livetv/dvrs/{dvrId}/lineups

Args: dvr_id: The ID of the DVR. lineup: The lineup to delete

delete_livetv_dvrs_by_dvr_id_reload_guideA

Tell a DVR to stop reloading program guide.

DELETE /livetv/dvrs/{dvrId}/reloadGuide

Args: dvr_id: The ID of the DVR.

delete_livetv_sessions_by_session_idC

Delete Live TV Session.

DELETE /livetv/sessions/{sessionId}

Args: session_id: The session id

delete_media_grabbers_devices_by_device_idC

Remove a device.

DELETE /media/grabbers/devices/{deviceId}

Args: device_id: The ID of the device.

delete_media_grabbers_devices_by_device_id_scanB

Tell a device to stop scanning for channels.

DELETE /media/grabbers/devices/{deviceId}/scan

Args: device_id: The ID of the device.

delete_media_grabbers_operations_by_operation_idA

Cancel an existing grab.

DELETE /media/grabbers/operations/{operationId}

Args: operation_id: The ID of the operation.

delete_media_providers_by_providerB

Delete a media provider.

DELETE /media/providers/{provider}

Args: provider: The ID of the media provider to delete

delete_media_subscriptions_by_subscription_idB

Delete a subscription.

DELETE /media/subscriptions/{subscriptionId}

Args: subscription_id: The unique identifier of the subscription

delete_play_queues_by_play_queue_id_itemsC

Clear a play queue.

DELETE /playQueues/{playQueueId}/items

Args: play_queue_id: The ID of the play queue.

delete_play_queues_by_play_queue_id_items_by_play_queue_item_idC

Delete an item from a play queue.

DELETE /playQueues/{playQueueId}/items/{playQueueItemId}

Args: play_queue_id: The ID of the play queue. play_queue_item_id: The play queue item ID to delete.

delete_playlistsC

Delete Playlist.

DELETE /playlists

Args: rating_key: The rating key of the playlist to delete.

delete_playlists_by_playlist_idA

Delete a Playlist.

DELETE /playlists/{playlistId}

Args: playlist_id: The ID of the playlist

delete_playlists_by_playlist_id_itemsB

Clearing a playlist.

DELETE /playlists/{playlistId}/items

Args: playlist_id: The ID of the playlist

delete_playlists_by_playlist_id_items_by_generator_idB

Delete a Generator.

DELETE /playlists/{playlistId}/items/{generatorId}

Args: playlist_id: The ID of the playlist generator_id: The generator item ID to delete.

delete_sharings_by_user_idB

Remove Share.

DELETE /sharings/{userId}

Args: user_id: The unique identifier of the user

delete_status_sessions_history_by_history_idC

Delete Single History Item.

DELETE /status/sessions/history/{historyId}

Args: history_id: The id of the history item (the historyKey from above)

delete_users_signoutB

Sign Out.

DELETE /users/signout

get_by_transcode_type_transcode_universal_decisionB

Make a decision on media playback.

GET /{transcodeType}/:/transcode/universal/decision

Args: transcode_type: Path parameter. platform: Client platform (some clients send this in addition to headers). audio_boost: Percentage of original audio loudness to use when transcoding (100 is equivalent to original volume, 50 is half, 200 is double, etc) audio_channel_count: Target video number of audio channels. auto_adjust_quality: Indicates the client supports ABR. auto_adjust_subtitle: Indicates if the server should adjust subtitles based on Voice Activity Data. direct_play: Indicates the client supports direct playing the indicated content. direct_stream: Indicates the client supports direct streaming the video of the indicated content. direct_stream_audio: Indicates the client supports direct streaming the audio of the indicated content. disable_resolution_rotation: Indicates if resolution should be adjusted for orientation. has_mde: Ignore client profiles when determining if direct play is possible. Only has an effect when directPlay=1 and both mediaIndex and partIndex are specified and neither are -1 location: Network type of the client, can be used to help determine target bitrate. media_buffer_size: Buffer size used in playback (in KB). Clients should specify a lower bound if not known exactly. This value could make the difference between transcoding and direct play on bandwidth constrained networks. media_index: Index of the media to transcode. -1 or not specified indicates let the server choose. music_bitrate: Target bitrate for audio only files (in kbps, used to transcode). offset: Offset from the start of the media (in seconds). part_index: Index of the part to transcode. -1 or not specified indicates the server should join parts together in a transcode path: Internal PMS path of the media to transcode. peak_bitrate: Maximum bitrate (in kbps) to use in ABR. photo_resolution: Target photo resolution. protocol: Indicates the network streaming protocol to be used for the transcode session: * 'http' - include the file in the http response such as MKV streaming * 'hls' - hls stream (RFC 8216) * 'dash' - dash stream (ISO/IEC 23009-1:2022) seconds_per_segment: Number of seconds to include in each transcoded segment subtitle_size: Percentage of original subtitle size to use when burning subtitles (100 is equivalent to original size, 50 is half, ect) subtitles: Indicates how subtitles should be included: * 'auto' - Compute the appropriate subtitle setting automatically * 'burn' - Burn the selected subtitle; auto if no selected subtitle * 'none' - Ignore all subtitle streams * 'sidecar' - The selected subtitle should be provided as a sidecar * 'embedded' - The selected subtitle should be provided as an embedded stream * 'segmented' - The selected subtitle should be provided as a segmented stream max_video_bitrate: Client-side maximum video bitrate cap in kbps video_resolution: Cap resolution string (e.g. 1920x1080) copyts: Copy timestamps instead of re-encoding them video_bitrate: Target video bitrate (in kbps). video_quality: Target photo quality.

get_by_transcode_type_transcode_universal_session_by_session_id_by_segment_id_m4sB

Get DASH Segment.

GET /{transcodeType}/:/transcode/universal/session/{sessionId}/{segmentId}.m4s

Args: transcode_type: The type of transcoding (e.g., video, audio) session_id: The unique identifier of the session segment_id: The unique identifier of the media segment

get_by_transcode_type_transcode_universal_session_by_session_id_by_segment_id_tsB

Get HLS Segment.

GET /{transcodeType}/:/transcode/universal/session/{sessionId}/{segmentId}.ts

Args: transcode_type: The type of transcoding (e.g., video, audio) session_id: The unique identifier of the session segment_id: The unique identifier of the media segment

get_by_transcode_type_transcode_universal_start_extensionA

Start A Transcoding Session.

GET /{transcodeType}/:/transcode/universal/start.{extension}

Args: extension: Extension transcode_type: Path parameter. platform: Client platform (some clients send this in addition to headers). audio_boost: Percentage of original audio loudness to use when transcoding (100 is equivalent to original volume, 50 is half, 200 is double, etc) audio_channel_count: Target video number of audio channels. auto_adjust_quality: Indicates the client supports ABR. auto_adjust_subtitle: Indicates if the server should adjust subtitles based on Voice Activity Data. direct_play: Indicates the client supports direct playing the indicated content. direct_stream: Indicates the client supports direct streaming the video of the indicated content. direct_stream_audio: Indicates the client supports direct streaming the audio of the indicated content. disable_resolution_rotation: Indicates if resolution should be adjusted for orientation. has_mde: Ignore client profiles when determining if direct play is possible. Only has an effect when directPlay=1 and both mediaIndex and partIndex are specified and neither are -1 location: Network type of the client, can be used to help determine target bitrate. media_buffer_size: Buffer size used in playback (in KB). Clients should specify a lower bound if not known exactly. This value could make the difference between transcoding and direct play on bandwidth constrained networks. media_index: Index of the media to transcode. -1 or not specified indicates let the server choose. music_bitrate: Target bitrate for audio only files (in kbps, used to transcode). offset: Offset from the start of the media (in seconds). part_index: Index of the part to transcode. -1 or not specified indicates the server should join parts together in a transcode path: Internal PMS path of the media to transcode. peak_bitrate: Maximum bitrate (in kbps) to use in ABR. photo_resolution: Target photo resolution. protocol: Indicates the network streaming protocol to be used for the transcode session: * 'http' - include the file in the http response such as MKV streaming * 'hls' - hls stream (RFC 8216) * 'dash' - dash stream (ISO/IEC 23009-1:2022) seconds_per_segment: Number of seconds to include in each transcoded segment subtitle_size: Percentage of original subtitle size to use when burning subtitles (100 is equivalent to original size, 50 is half, ect) subtitles: Indicates how subtitles should be included: * 'auto' - Compute the appropriate subtitle setting automatically * 'burn' - Burn the selected subtitle; auto if no selected subtitle * 'none' - Ignore all subtitle streams * 'sidecar' - The selected subtitle should be provided as a sidecar * 'embedded' - The selected subtitle should be provided as an embedded stream * 'segmented' - The selected subtitle should be provided as a segmented stream max_video_bitrate: Client-side maximum video bitrate cap in kbps video_resolution: Cap resolution string (e.g. 1920x1080) copyts: Copy timestamps instead of re-encoding them video_bitrate: Target video bitrate (in kbps). video_quality: Target photo quality.

get_by_transcode_type_transcode_universal_subtitlesA

Transcode subtitles.

GET /{transcodeType}/:/transcode/universal/subtitles

Args: transcode_type: Path parameter. platform: Client platform (some clients send this in addition to headers). audio_boost: Percentage of original audio loudness to use when transcoding (100 is equivalent to original volume, 50 is half, 200 is double, etc) audio_channel_count: Target video number of audio channels. auto_adjust_quality: Indicates the client supports ABR. auto_adjust_subtitle: Indicates if the server should adjust subtitles based on Voice Activity Data. direct_play: Indicates the client supports direct playing the indicated content. direct_stream: Indicates the client supports direct streaming the video of the indicated content. direct_stream_audio: Indicates the client supports direct streaming the audio of the indicated content. disable_resolution_rotation: Indicates if resolution should be adjusted for orientation. has_mde: Ignore client profiles when determining if direct play is possible. Only has an effect when directPlay=1 and both mediaIndex and partIndex are specified and neither are -1 location: Network type of the client, can be used to help determine target bitrate. media_buffer_size: Buffer size used in playback (in KB). Clients should specify a lower bound if not known exactly. This value could make the difference between transcoding and direct play on bandwidth constrained networks. media_index: Index of the media to transcode. -1 or not specified indicates let the server choose. music_bitrate: Target bitrate for audio only files (in kbps, used to transcode). offset: Offset from the start of the media (in seconds). part_index: Index of the part to transcode. -1 or not specified indicates the server should join parts together in a transcode path: Internal PMS path of the media to transcode. peak_bitrate: Maximum bitrate (in kbps) to use in ABR. photo_resolution: Target photo resolution. protocol: Indicates the network streaming protocol to be used for the transcode session: * 'http' - include the file in the http response such as MKV streaming * 'hls' - hls stream (RFC 8216) * 'dash' - dash stream (ISO/IEC 23009-1:2022) seconds_per_segment: Number of seconds to include in each transcoded segment subtitle_size: Percentage of original subtitle size to use when burning subtitles (100 is equivalent to original size, 50 is half, ect) subtitles: Indicates how subtitles should be included: * 'auto' - Compute the appropriate subtitle setting automatically * 'burn' - Burn the selected subtitle; auto if no selected subtitle * 'none' - Ignore all subtitle streams * 'sidecar' - The selected subtitle should be provided as a sidecar * 'embedded' - The selected subtitle should be provided as an embedded stream * 'segmented' - The selected subtitle should be provided as a segmented stream max_video_bitrate: Client-side maximum video bitrate cap in kbps video_resolution: Cap resolution string (e.g. 1920x1080) copyts: Copy timestamps instead of re-encoding them video_bitrate: Target video bitrate (in kbps). video_quality: Target photo quality.

get_download_queue_by_queue_idB

Get a download queue.

GET /downloadQueue/{queueId}

Args: queue_id: The queue id

get_download_queue_by_queue_id_item_by_item_id_decisionC

Grab download queue item decision.

GET /downloadQueue/{queueId}/item/{itemId}/decision

Args: queue_id: The queue id item_id: The item ids

get_download_queue_by_queue_id_item_by_item_id_mediaC

Grab download queue media.

GET /downloadQueue/{queueId}/item/{itemId}/media

Args: queue_id: The queue id item_id: The item ids

get_download_queue_by_queue_id_itemsC

Get download queue items.

GET /downloadQueue/{queueId}/items

Args: queue_id: The queue id

get_download_queue_by_queue_id_items_by_item_idC

Get download queue items.

GET /downloadQueue/{queueId}/items/{itemId}

Args: queue_id: The queue id item_id: The item ids

get_downloads_by_channel_jsonB

Get Plex Downloads.

GET /downloads/{channel}.json

Args: channel: The channel identifier

get_hubs_metadata_by_metadata_idA

Get hubs for section by metadata item.

GET /hubs/metadata/{metadataId}

Args: metadata_id: The metadata ID for the hubs to fetch only_transient: Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added)

get_hubs_metadata_by_metadata_id_postplayA

Get postplay hubs.

GET /hubs/metadata/{metadataId}/postplay

Args: metadata_id: The metadata ID for the hubs to fetch only_transient: Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added)

get_hubs_metadata_by_metadata_id_relatedA

Get related hubs.

GET /hubs/metadata/{metadataId}/related

Args: metadata_id: The metadata ID for the hubs to fetch only_transient: Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added)

get_hubs_sections_by_section_idA

Get section hubs.

GET /hubs/sections/{sectionId}

Args: section_id: The section ID for the hubs to fetch only_transient: Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added)

get_hubs_sections_by_section_id_manageC

Get hubs.

GET /hubs/sections/{sectionId}/manage

Args: section_id: The section ID for the hubs to reorder metadata_item_id: Restrict hubs to ones relevant to the provided metadata item

get_library_collections_by_collection_id_composite_by_updated_atB

Get a collection's image.

GET /library/collections/{collectionId}/composite/{updatedAt}

Args: collection_id: The collection id updated_at: The update time of the image. Used for busting cache.

get_library_collections_by_collection_id_itemsB

Get items in a collection.

GET /library/collections/{collectionId}/items

Args: collection_id: The collection id

get_library_media_by_media_id_chapter_images_by_chapterB

Get a chapter image.

GET /library/media/{mediaId}/chapterImages/{chapter}

Args: media_id: The id of the media item chapter: The index of the chapter

get_library_metadata_augmentations_by_augmentation_idA

Get augmentation status.

GET /library/metadata/augmentations/{augmentationId}

Args: augmentation_id: The id of the augmentation wait: Wait for augmentation completion before returning

get_library_metadata_by_id_childrenC

Get Metadata Children.

GET /library/metadata/{id}/children

Args: id: The unique identifier of the item

get_library_metadata_by_id_compute_pathC

Compute Sonic Path.

GET /library/metadata/{id}/computePath

Args: id: The unique identifier of the item

get_library_metadata_by_id_grandchildrenC

Get Metadata Grandchildren.

GET /library/metadata/{id}/grandchildren

Args: id: The unique identifier of the item

get_library_metadata_by_id_grandparentB

Get Metadata Grandparent.

GET /library/metadata/{id}/grandparent

Args: id: The unique identifier of the item

get_library_metadata_by_id_nearestC

Get Nearest Metadata.

GET /library/metadata/{id}/nearest

Args: id: The unique identifier of the item exclude_parent_id: The unique identifier of the excludeparent exclude_grandparent_id: The unique identifier of the excludegrandparent limit: Maximum number of items to return max_distance: The maxDistance

get_library_metadata_by_id_on_deckC

Get Metadata On Deck.

GET /library/metadata/{id}/onDeck

Args: id: The unique identifier of the item

get_library_metadata_by_id_parentC

Get Metadata Parent.

GET /library/metadata/{id}/parent

Args: id: The unique identifier of the item

get_library_metadata_by_id_reviewsB

Get Metadata Reviews.

GET /library/metadata/{id}/reviews

Args: id: The unique identifier of the item

get_library_metadata_by_idsA

Get a metadata item.

GET /library/metadata/{ids}

Args: ids: Comma-separated list of IDs async_check_files: Determines if file check should be performed asynchronously. An activity is created to indicate progress. Default is false. async_refresh_local_media_agent: Determines if local media agent refresh should be performed asynchronously. An activity is created to indicate progress. Default is false. async_refresh_analysis: Determines if analysis refresh should be performed asynchronously. An activity is created to indicate progress. Default is false. check_files: Determines if file check should be performed synchronously. Specifying asyncCheckFiles will cause this option to be ignored. Default is false. skip_refresh: Determines if synchronous local media agent and analysis refresh should be skipped. Specifying async versions will cause synchronous versions to be skipped. Default is false. check_file_availability: Determines if file existence check should be performed synchronously. Specifying checkFiles will imply this option. Default is false. async_augment_metadata: Add metadata augmentations. An activity is created to indicate progress. Option will be ignored if specified by non-admin or if multiple metadata items are requested. Default is false. augment_count: Number of augmentations to add. Requires asyncAugmentMetadata to be specified. include_markers: Include intro/credits markers in the response include_guids: Include external GUIDs (e.g. TMDB, TVDB) in the response include_chapters: Include chapter data in the response include_external_media: Include external/online media in the response include_extras: Include trailers, behind-the-scenes, and other extras include_related: Include related items in the response include_on_deck: Include On Deck status in the response include_popular_leaves: Include popular episodes in the response include_reviews: Include user reviews in the response include_stations: Include radio station data in the response exclude_elements: Comma-separated list of elements to exclude from the response exclude_fields: Comma-separated list of fields to exclude from the response

get_library_metadata_by_ids_all_leavesB

Get the leaves of an item.

GET /library/metadata/{ids}/allLeaves

Args: ids: Comma-separated list of IDs

get_library_metadata_by_ids_by_element_by_timestampB

Get an item's artwork, theme, etc.

GET /library/metadata/{ids}/{element}/{timestamp}

Args: ids: Comma-separated list of IDs element: The type of artwork element (e.g., art, poster, thumb) timestamp: A timestamp on the element used for cache management in the client

get_library_metadata_by_ids_extrasB

Get an item's extras.

GET /library/metadata/{ids}/extras

Args: ids: Comma-separated list of IDs

get_library_metadata_by_ids_fileA

Get a file from a metadata or media bundle.

GET /library/metadata/{ids}/file

Args: ids: Comma-separated list of IDs url: The bundle url, typically starting with metadata:// or media://

get_library_metadata_by_ids_relatedB

Get related items.

GET /library/metadata/{ids}/related

Args: ids: Comma-separated list of IDs

get_library_metadata_by_ids_similarB

Get similar items.

GET /library/metadata/{ids}/similar

Args: ids: Comma-separated list of IDs

get_library_metadata_by_ids_subtitlesC

Get subtitles.

GET /library/metadata/{ids}/subtitles

Args: ids: Comma-separated list of IDs title: The title to filter by language: The language code to use media_item_id: The unique identifier of the mediaitem url: The URL of the subtitle. If not provided, the contents of the subtitle must be in the post body format: The format forced: The forced hearing_impaired: The hearingImpaired

get_library_metadata_by_ids_treeB

Get metadata items as a tree.

GET /library/metadata/{ids}/tree

Args: ids: Comma-separated list of IDs

get_library_metadata_by_ids_users_topC

Get metadata top users.

GET /library/metadata/{ids}/users/top

Args: ids: Comma-separated list of IDs

get_library_parts_by_part_id_by_changestamp_by_filenameA

Get a media part.

GET /library/parts/{partId}/{changestamp}/{filename}

Args: part_id: The part id who's index is to be fetched changestamp: The changestamp of the part; used for busting potential caches. Provided in the key for the part filename: A generic filename used for a client media stack which relies on the extension in the request. Provided in the key for the part download: Whether this is a file download

get_library_parts_by_part_id_indexes_by_indexB

Get BIF index for a part.

GET /library/parts/{partId}/indexes/{index}

Args: part_id: The part id who's index is to be fetched index: The type of index to grab. interval: The interval between images to return in ms.

get_library_parts_by_part_id_indexes_by_index_by_offsetB

Get an image from part BIF.

GET /library/parts/{partId}/indexes/{index}/{offset}

Args: part_id: The part id who's index is to be fetched index: The type of index to grab. offset: The offset to seek in ms.

get_library_people_by_person_idA

Get person details.

GET /library/people/{personId}

Args: person_id: Either the PMS tag id of the person or tagKey of the actor. Note the tagKey is the hex portion of the plex guid for the actor

get_library_people_by_person_id_mediaA

Get media for a person.

GET /library/people/{personId}/media

Args: person_id: Either the PMS tag id of the person or tagKey of the actor. Note the tagKey is the hex portion of the plex guid for the actor

get_library_sections_by_section_idA

Get a library section by id.

GET /library/sections/{sectionId}

Args: section_id: The section identifier include_details: Whether or not to include details for a section (types, filters, and sorts). Only exists for backwards compatibility, media providers other than the server libraries have it on always.

get_library_sections_by_section_id_agentsB

Get Section Agents.

GET /library/sections/{sectionId}/agents

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_albumsD

Set section albums.

GET /library/sections/{sectionId}/albums

Args: section_id: Section identifier

get_library_sections_by_section_id_allB

Get items in the section.

GET /library/sections/{sectionId}/all

Args: section_id: The id of the section include_meta: Adds the Meta object to the response include_guids: Adds the Guid object to the response include_collections: Include collection items in results include_external_media: Include external or online media include_advanced: Include advanced settings check_files: Verify file existence include_related: Include related items include_extras: Include trailers, behind-the-scenes, etc. include_popular_leaves: Include popular episodes include_concerts: Include concert items include_on_deck: Include On Deck status include_chapters: Include chapter markers include_preferences: Include user preferences include_bandwidths: Include bandwidth info include_loudness_ramps: Include loudness ramp data include_stations: Include radio station data include_external_ids: Include external GUIDs include_reviews: Include user reviews include_credits: Include full credits include_art: Force inclusion of artwork fields include_thumb: Force inclusion of thumbnail fields include_banner: Force inclusion of banner fields include_theme: Force inclusion of theme fields include_fields: Whitelist of fields to return exclude_fields: Blacklist of fields to omit async_augment_metadata: Async metadata augmentation async_refresh_local_media_agent: Async local media agent refresh nocache: Bypass cache skip_refresh: Skip synchronous refresh exclude_elements: Comma-separated list of elements to exclude from the response filters: General filtering expression. unwatched: Filter to unwatched only (1 = true). genre: Filter by genre. studio: Filter by studio. content_rating: Filter by content rating. resolution: Filter by resolution. year: Filter by year. first_character: Filter by first character of title.

get_library_sections_by_section_id_all_leavesC

Set section leaves.

GET /library/sections/{sectionId}/allLeaves

Args: section_id: Section identifier

get_library_sections_by_section_id_artistsC

Get Section Artists.

GET /library/sections/{sectionId}/artists

Args: section_id: The id of the section

get_library_sections_by_section_id_artsD

Set section artwork.

GET /library/sections/{sectionId}/arts

Args: section_id: Section identifier

get_library_sections_by_section_id_autocompleteB

Get autocompletions for search.

GET /library/sections/{sectionId}/autocomplete

Args: section_id: Section identifier field_query: The "field" stands in for any field, the value is a partial string for matching

get_library_sections_by_section_id_by_content_ratingC

Get By Content Rating.

GET /library/sections/{sectionId}/byContentRating

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_by_decadeC

Get By Decade.

GET /library/sections/{sectionId}/byDecade

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_by_folderC

Get By Folder.

GET /library/sections/{sectionId}/byFolder

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_by_resolutionC

Get By Resolution.

GET /library/sections/{sectionId}/byResolution

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_by_yearC

Get By Year.

GET /library/sections/{sectionId}/byYear

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_categoriesD

Set section categories.

GET /library/sections/{sectionId}/categories

Args: section_id: Section identifier

get_library_sections_by_section_id_clipsC

Get Section Clips.

GET /library/sections/{sectionId}/clips

Args: section_id: The id of the section

get_library_sections_by_section_id_clusterD

Set section clusters.

GET /library/sections/{sectionId}/cluster

Args: section_id: Section identifier

get_library_sections_by_section_id_collectionsC

Get collections in a section.

GET /library/sections/{sectionId}/collections

Args: section_id: Section identifier

get_library_sections_by_section_id_commonC

Get common fields for items.

GET /library/sections/{sectionId}/common

Args: section_id: Section identifier

get_library_sections_by_section_id_composite_by_updated_atA

Get a section composite image.

GET /library/sections/{sectionId}/composite/{updatedAt}

Args: section_id: Section identifier updated_at: The update time of the image. Used for busting cache.

get_library_sections_by_section_id_compute_pathC

Similar tracks to transition from one to another.

GET /library/sections/{sectionId}/computePath

Args: section_id: Section identifier start_id: The starting metadata item id end_id: The ending metadata item id max_distance: The maximum distance allowed along the path; defaults to 0.25

get_library_sections_by_section_id_editD

Edit Section.

GET /library/sections/{sectionId}/edit

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_empty_trashC

Get Empty Trash.

GET /library/sections/{sectionId}/emptyTrash

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_episodesC

Get Section Episodes.

GET /library/sections/{sectionId}/episodes

Args: section_id: The id of the section

get_library_sections_by_section_id_filtersC

Get section filters.

GET /library/sections/{sectionId}/filters

Args: section_id: Section identifier

get_library_sections_by_section_id_first_charactersC

Get list of first characters.

GET /library/sections/{sectionId}/firstCharacters

Args: section_id: Section identifier

get_library_sections_by_section_id_hubsB

Get Section Hubs.

GET /library/sections/{sectionId}/hubs

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_labelC

Get Section Labels.

GET /library/sections/{sectionId}/label

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_locationC

Get all folder locations.

GET /library/sections/{sectionId}/location

Args: section_id: Section identifier

get_library_sections_by_section_id_matchC

Match Section Items.

GET /library/sections/{sectionId}/match

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_momentD

Set section moments.

GET /library/sections/{sectionId}/moment

Args: section_id: Section identifier

get_library_sections_by_section_id_moviesC

Get Section Movies.

GET /library/sections/{sectionId}/movies

Args: section_id: The id of the section

get_library_sections_by_section_id_nearestA

The nearest audio tracks.

GET /library/sections/{sectionId}/nearest

Args: section_id: Section identifier type: The metadata type to fetch (should be 10 for audio track) values: The music analysis to center the search. Typically obtained from the musicAnalysis of a track limit: The limit of the number of items to fetch; defaults to 50 max_distance: The maximum distance to search, defaults to 0.25

get_library_sections_by_section_id_newestB

Get Newest for Section.

GET /library/sections/{sectionId}/newest

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_on_deckB

Get On Deck for Section.

GET /library/sections/{sectionId}/onDeck

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_optimizeB

Get Optimize Section.

GET /library/sections/{sectionId}/optimize

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_photosC

Get Section Photos.

GET /library/sections/{sectionId}/photos

Args: section_id: The id of the section

get_library_sections_by_section_id_playlistsB

Get Section Playlists.

GET /library/sections/{sectionId}/playlists

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_prefsB

Get section prefs.

GET /library/sections/{sectionId}/prefs

Args: section_id: Section identifier agent: The identifier of the metadata agent to use

get_library_sections_by_section_id_recently_addedA

Get Recently Added for Section.

GET /library/sections/{sectionId}/recentlyAdded

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_refreshC

Get Refresh Section.

GET /library/sections/{sectionId}/refresh

Args: section_id: Section identifier

get_library_sections_by_section_id_searchC

Search Section.

GET /library/sections/{sectionId}/search

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_settingsB

Get Section Settings.

GET /library/sections/{sectionId}/settings

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_showsB

Get Section Shows.

GET /library/sections/{sectionId}/shows

Args: section_id: The id of the section

get_library_sections_by_section_id_sortsB

Get a section sorts.

GET /library/sections/{sectionId}/sorts

Args: section_id: Section identifier

get_library_sections_by_section_id_tagsB

Get Section Tags.

GET /library/sections/{sectionId}/tags

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_timelineB

Get Section Timeline.

GET /library/sections/{sectionId}/timeline

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_unmatchC

Unmatch Section Items.

GET /library/sections/{sectionId}/unmatch

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_unwatchedB

Get Unwatched for Section.

GET /library/sections/{sectionId}/unwatched

Args: section_id: The unique identifier of the library section

get_library_streams_by_stream_id_extA

Get a stream.

GET /library/streams/{streamId}.{ext}

Args: stream_id: The id of the stream ext: The extension of the stream. Required to fetch the sub portion of idx/sub subtitles encoding: The requested encoding for the subtitle (only used for text subtitles) format: The requested format for the subtitle to convert the subtitles to (only used for text subtitles) auto_adjust_subtitle: Whether the server should attempt to automatically adjust the subtitle timestamps to match the media

get_library_streams_by_stream_id_levelsB

Get loudness about a stream in json.

GET /library/streams/{streamId}/levels

Args: stream_id: The id of the stream subsample: Subsample result down to return only the provided number of samples

get_library_streams_by_stream_id_loudnessC

Get loudness about a stream.

GET /library/streams/{streamId}/loudness

Args: stream_id: The id of the stream subsample: Subsample result down to return only the provided number of samples

get_livetv_dvrs_by_dvr_idB

Get a single DVR.

GET /livetv/dvrs/{dvrId}

Args: dvr_id: The ID of the DVR.

get_livetv_dvrs_by_dvr_id_channelsC

Get DVR Channels.

GET /livetv/dvrs/{dvrId}/channels

Args: dvr_id: The ID of the DVR.

get_livetv_dvrs_by_dvr_id_guideC

Get DVR Guide.

GET /livetv/dvrs/{dvrId}/guide

Args: dvr_id: The ID of the DVR.

get_livetv_dvrs_by_dvr_id_recordingsC

Get DVR Recordings by DVR.

GET /livetv/dvrs/{dvrId}/recordings

Args: dvr_id: The ID of the DVR.

get_livetv_epg_countries_by_country_by_epg_id_lineupsA

Get lineups for a country via postal code.

GET /livetv/epg/countries/{country}/{epgId}/lineups

Args: country: 3 letter country code epg_id: The providerIdentifier of the provider postal_code: The postal code for the lineups to fetch

get_livetv_epg_countries_by_country_by_epg_id_regionsA

Get regions for a country.

GET /livetv/epg/countries/{country}/{epgId}/regions

Args: country: 3 letter country code epg_id: The providerIdentifier of the provider

get_livetv_epg_countries_by_country_by_epg_id_regions_by_region_lineupsA

Get lineups for a region.

GET /livetv/epg/countries/{country}/{epgId}/regions/{region}/lineups

Args: country: 3 letter country code epg_id: The providerIdentifier of the provider region: The region for the lineup

get_livetv_sessions_by_session_idB

Get a single session.

GET /livetv/sessions/{sessionId}

Args: session_id: The session id

get_livetv_sessions_by_session_id_by_consumer_id_by_segment_idC

Get a single session segment.

GET /livetv/sessions/{sessionId}/{consumerId}/{segmentId}

Args: session_id: The session id consumer_id: The consumer id segment_id: The segment id

get_livetv_sessions_by_session_id_by_consumer_id_index_m3u8B

Get a session playlist index.

GET /livetv/sessions/{sessionId}/{consumerId}/index.m3u8

Args: session_id: The session id consumer_id: The consumer id

get_media_grabbers_devices_by_device_idB

Get device details.

GET /media/grabbers/devices/{deviceId}

Args: device_id: The ID of the device.

get_media_grabbers_devices_by_device_id_channelsB

Get a device's channels.

GET /media/grabbers/devices/{deviceId}/channels

Args: device_id: The ID of the device.

get_media_grabbers_devices_by_device_id_thumb_by_versionB

Get device thumb.

GET /media/grabbers/devices/{deviceId}/thumb/{version}

Args: device_id: The ID of the device. version: A version number of the thumb used for busting cache

get_media_subscriptions_by_subscription_idA

Get a single subscription.

GET /media/subscriptions/{subscriptionId}

Args: subscription_id: The unique identifier of the subscription include_grabs: Indicates whether the active grabs should be included as well include_storage: Compute the storage of recorded items desired by this subscription

get_pins_by_pin_idA

Get OAuth PIN Status.

GET /pins/{pinId}

Args: pin_id: The unique identifier of the pin

get_play_queues_by_play_queue_idA

Retrieve a play queue.

GET /playQueues/{playQueueId}

Args: play_queue_id: The ID of the play queue. own: If the server should transfer ownership to the requesting client (used in remote control scenarios). center: The play queue item ID for the center of the window - this doesn't change the current selected item. window: How many items on each side of the center of the window include_before: Whether to include the items before the center (if 0, center is not included either), defaults to 1. include_after: Whether to include the items after the center (if 0, center is not included either), defaults to 1.

get_playlists_by_playlist_idB

Retrieve Playlist.

GET /playlists/{playlistId}

Args: playlist_id: The ID of the playlist

get_playlists_by_playlist_id_generatorsB

Get a playlist's generators.

GET /playlists/{playlistId}/generators

Args: playlist_id: The ID of the playlist

get_playlists_by_playlist_id_itemsA

Retrieve Playlist Contents.

GET /playlists/{playlistId}/items

Args: playlist_id: The ID of the playlist type: The metadata types of the item to return. Values past the first are only used in fetching items from the background processing playlist.

get_playlists_by_playlist_id_items_by_generator_idC

Get a playlist generator.

GET /playlists/{playlistId}/items/{generatorId}

Args: playlist_id: The ID of the playlist generator_id: The generator item ID to delete.

get_playlists_by_playlist_id_items_by_generator_id_itemsC

Get a playlist generator's items.

GET /playlists/{playlistId}/items/{generatorId}/items

Args: playlist_id: The ID of the playlist generator_id: The generator item ID to delete.

get_servers_by_machine_idB

Get Server Details.

GET /servers/{machineId}

Args: machine_id: The unique machine identifier of the server

get_services_browse_by_base64pathC

Browse Filesystem Path.

GET /services/browse/{base64path}

Args: base64path: The base64path

get_status_sessions_history_by_history_idB

Get Single History Item.

GET /status/sessions/history/{historyId}

Args: history_id: The id of the history item (the historyKey from above)

get_sync_items_by_sync_idB

Get Sync Item.

GET /sync/items/{syncId}

Args: sync_id: The unique identifier of the sync item

get_system_agents_by_agent_idB

Get Metadata Agent Details.

GET /system/agents/{agentId}

Args: agent_id: The unique identifier of the metadata agent

get_user_by_uuid_settings_opt_outsC

Get User Opt-Outs.

GET /user/{uuid}/settings/opt_outs

Args: uuid: The universally unique identifier

list_accountsB

Get System Accounts.

GET /accounts

list_activitiesB

Get all activities.

GET /activities

list_auth_keysB

Get Auth Keys.

GET /auth/keys

list_auth_nonceB

Get Auth Nonce.

GET /auth/nonce

list_butlerA

Get all Butler tasks.

GET /butler

list_claim_token_jsonC

Get Claim Token.

GET /claim/token.json

list_clientsB

Get Clients.

GET /clients

list_cloud_serverB

Get Cloud Server.

GET /cloud_server

list_devicesB

Get System Devices.

GET /devices

list_diagnosticsB

Get Diagnostics.

GET /diagnostics

list_diagnostics_databasesC

Download Database Diagnostics.

GET /diagnostics/databases

list_diagnostics_logsA

Download Log Bundle.

GET /diagnostics/logs

list_eventsource_notificationsB

Connect to Eventsource.

GET /:/eventsource/notifications

Args:
    filter: By default, all events except logs are sent. A rich filtering mechanism is provided to allow clients to opt into or out of each event type using the `filters` parameter. For example:
  • filters=-log: All event types except logs (the default).

  • filters=foo,bar: Only the foo and bar event types.

  • filters=: All events types.

  • filters=-foo,bar: All event types except foo and bar.

list_featuresB

Get Features.

GET /features

list_friendsB

Get Friends.

GET /friends

list_geoipB

Get GeoIP.

GET /geoip

list_homeB

Get home hubs.

GET /home

list_home_usersC

Get home hubs Users.

GET /home/users

list_hubsA

Get global hubs.

GET /hubs

Args: only_transient: Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added) identifier: If provided, limit to only specified hubs

list_hubs_continue_watchingB

Get the continue watching hub.

GET /hubs/continueWatching

list_hubs_continue_watching_itemsB

Get Continue Watching Items.

GET /hubs/continueWatching/items

list_hubs_home_recently_addedA

Get home hubs Recently Added.

GET /hubs/home/recentlyAdded

list_hubs_itemsB

Get a hub's items.

GET /hubs/items

Args: identifier: If provided, limit to only specified hubs

list_hubs_promotedA

Get the hubs which are promoted.

GET /hubs/promoted

list_hubs_searchB

Search Hub.

GET /hubs/search

Args: query: The query term section_id: This gives context to the search, and can result in re-ordering of search result hubs. limit: The number of items to return per hub. 3 if not specified include_collections: Include collection results in search hubs

list_hubs_search_voiceB

Voice Search Hub.

GET /hubs/search/voice

Args: query: The query term limit: The number of items to return per hub. 3 if not specified include_collections: Include collection results in search hubs

list_identityB

Get PMS identity.

GET /identity

list_ipB

Get IP.

GET /ip

list_libraryA

Get Root Library.

GET /library

list_library_allA

Get all items in library.

GET /library/all

list_library_matchesA

Get library matches.

GET /library/matches

Args: include_full_metadata: Include full metadata in the response include_ancestor_metadata: Include ancestor metadata in the response include_alternate_metadata_sources: Include alternate metadata sources in the response guid: Used for movies, shows, artists, albums, and tracks. Allowed for various URI schemes, to be defined. year: Used for movies shows, and albums. Optional. path: Used for movies, episodes, and tracks. The full path to the media file, used for "cloud-scanning" an item. grandparent_title: Used for episodes and tracks. The title of the show/artist. Required if path isn't passed. grandparent_year: Used for episodes. The year of the show. parent_index: Used for episodes and tracks. The season/album number. index: Used for episodes and tracks. The episode/tracks number in the season/album. originally_available_at: Used for episodes. In the format YYYY-MM-DD. parent_title: Used for albums and tracks. The artist name for albums or the album name for tracks.

list_library_optimizeB

Get Optimize Library.

GET /library/optimize

list_library_random_artworkB

Get random artwork.

GET /library/randomArtwork

Args: sections: The sections for which to fetch artwork.

list_library_recently_addedA

Get Global Recently Added.

GET /library/recentlyAdded

list_library_searchC

Search Discover.

GET /library/search

Args: query: The search query string limit: Maximum number of items to return search_types: Types of content to search for search_providers: Providers to include in the search include_metadata: Include metadata in the search results

list_library_sectionsB

Get Library Sections (Fallback).

GET /library/sections/

list_library_sections_allA

Get library sections (main Media Provider Only).

GET /library/sections/all

list_library_sections_prefsC

Get section prefs.

GET /library/sections/prefs

Args: type: The metadata type agent: The metadata agent in use

list_library_sections_watchlist_allB

Get Watchlist.

GET /library/sections/watchlist/all

list_library_tagsB

Get all library tags of a type.

GET /library/tags

list_livetv_dvrsB

Get DVRs.

GET /livetv/dvrs

Args: uuid: Filter by DVR UUID. lineup: Filter by lineup.

list_livetv_epg_channelmapC

Compute the best channel map.

GET /livetv/epg/channelmap

Args: device: The URI describing the device lineup: The URI describing the lineup

list_livetv_epg_channelsC

Get channels for a lineup.

GET /livetv/epg/channels

Args: lineup: The URI describing the lineup

list_livetv_epg_countriesB

Get all countries.

GET /livetv/epg/countries

list_livetv_epg_guideB

Get EPG Guide.

GET /livetv/epg/guide

list_livetv_epg_languagesB

Get all languages.

GET /livetv/epg/languages

list_livetv_epg_lineupC

Compute the best lineup.

GET /livetv/epg/lineup

Args: device: The URI describing the device lineup_group: The URI describing the lineupGroup

list_livetv_epg_lineupchannelsB

Get the channels for multiple lineups.

GET /livetv/epg/lineupchannels

Args: lineup: The URIs describing the lineups

list_livetv_epg_searchC

Search EPG.

GET /livetv/epg/search

list_livetv_recordingsB

Get DVR Recordings.

GET /livetv/recordings

list_livetv_sessionsC

Get all sessions.

GET /livetv/sessions

Args: dvr_id: Filter by DVR ID. channel: Filter by channel ID.

list_media_grabbersA

Get available grabbers.

GET /media/grabbers

Args: protocol: Only return grabbers providing this protocol.

list_media_grabbers_devicesB

Get all devices.

GET /media/grabbers/devices

list_media_grabbers_devices_discoverB

Tell grabbers to discover devices.

GET /media/grabbers/devices/discover

Args: protocol: Protocol to filter discovery. grabber_identifier: Targeted grabber identifier.

list_media_providersB

Get the list of available media providers.

GET /media/providers

list_media_subscriptionsB

Get all subscriptions.

GET /media/subscriptions

Args: include_grabs: Indicates whether the active grabs should be included as well include_storage: Compute the storage of recorded items desired by this subscription

list_media_subscriptions_scheduledB

Get all scheduled recordings.

GET /media/subscriptions/scheduled

list_media_subscriptions_templateB

Get the subscription template.

GET /media/subscriptions/template

Args: guid: The guid of the item for which to get the template type: Subscription type. target_library_section_id: Target library section ID.

list_music_transcodeC

Transcode Music.

GET /music/:/transcode

list_myplex_accountA

Get MyPlex Account.

GET /myplex/account

list_photo_transcodeA

Transcode an image.

GET /photo/:/transcode

Args:
    url: The source URL for the image to transcode.  Note, if this URL requires a token such as `X-Plex-Token`, it should be given as a query parameter to this url.
    format: The output format for the image; defaults to jpg
    width: The desired width of the output image
    height: The desired height of the output image
    quality: The desired quality of the output.  -1 means the highest quality.  Defaults to -1
    background: The background color to apply before painting the image.  Only really applicable if image has transparency.  Defaults to none
    upscale: Indicates if image should be upscaled to the desired width/height.  Defaults to false
    min_size: Indicates if image should be scaled to fit the smaller dimension.  By default (false) the image is scaled to fit within the width/height specified but if this parameter is true, it will allow overflowing one dimension to fit the other.  Essentially it is making the width/height minimum sizes of the image or sizing the image to fill the entire width/height even if it overflows one dimension.
    rotate: Obey the rotation values specified in EXIF data.  Defaults to true.
    blur: Apply a blur to the image, Defaults to 0 (none)
    saturation: Scale the image saturation by the specified percentage.  Defaults to 100
    opacity: Render the image at the specified opacity percentage.  Defaults to 100
    chroma_subsampling: Use the specified chroma subsambling.
  • 0: 411

  • 1: 420

  • 2: 422

  • 3: 444 Defaults to 3 (444) blend_color: The color to blend with the image. Defaults to none

list_pingA

Ping the server.

GET /ping

list_play_queues_1B

Get Conversion Queue.

GET /playQueues/1

list_player_resourcesB

Get Client Resources.

GET /player/resources

list_player_timeline_pollC

Player Poll Timeline.

GET /player/timeline/poll

list_playlistsC

List playlists.

GET /playlists

Args: playlist_type: Limit to a type of playlist type: Filter by playlist type. Use 42 for optimized/conversion items.

list_prefsA

Get all preferences.

GET /:/prefs

list_prefs_getC

Get a preferences.

GET /:/prefs/get

Args: id: The preference to fetch

list_progressC

Get Progress.

GET /:/progress

Args: key: The metadata key of the item time: The current playback position in milliseconds

list_resourcesC

Get Legacy Resources.

GET /api/resources

list_resources_2B

Get Server Resources.

GET /resources

Args:
    include_https: Include Https entries in the results
    include_relay: Include Relay addresses in the results 

E.g: https://10-0-0-25.bbf8e10c7fa20447cacee74cd9914cde.plex.direct:32400 include_ipv6: Include IPv6 entries in the results

list_rootA

Get PMS info.

GET /

list_security_resourcesA

Get Source Connection Information.

GET /security/resources

Args: source: The source identifier with an included prefix. refresh: Force refresh

list_serverC

Get User Server Association.

GET /server

list_server_access_tokensB

Get Server Access Tokens.

GET /server/access_tokens

list_server_users_featuresB

Get Server User Features.

GET /server/users/features

list_serversC

Get Local Servers.

GET /servers

list_services_browseB

Browse Filesystem.

GET /services/browse

Args: include_files: Include files in browse results

list_services_ultrablur_colorsA

Get UltraBlur Colors.

GET /services/ultrablur/colors

Args: url: Url for image which requires color extraction. Can be relative PMS library path or absolute url.

list_services_ultrablur_imageA

Get UltraBlur Image.

GET /services/ultrablur/image

Args: top_left: The base color (hex) for the top left quadrant. top_right: The base color (hex) for the top right quadrant. bottom_right: The base color (hex) for the bottom right quadrant. bottom_left: The base color (hex) for the bottom left quadrant. width: Width in pixels for the image. height: Height in pixels for the image. noise: Whether to add noise to the ouput image. Noise can reduce color banding with the gradients. Image sizes with noise will be larger.

list_statistics_bandwidthA

Get Bandwidth Statistics.

GET /statistics/bandwidth

Args: timespan: Dashboard timespan (1-6) account_id: Filter by account ID device_id: Filter by device ID lan: Filter to LAN-only traffic

list_statistics_resourcesB

Get Resource Statistics.

GET /statistics/resources

list_status_sessionsB

List Sessions.

GET /status/sessions

list_status_sessions_backgroundA

Get background tasks.

GET /status/sessions/background

list_status_sessions_history_allA

List Playback History.

GET /status/sessions/history/all

Args: account_id: The account id to restrict view history viewed_at: The time period to restrict history (typically of the form viewedAt>=12456789) library_section_id: The library section id to restrict view history metadata_item_id: The metadata item to restrict view history (can provide the id for a show to see all of that show's view history). Note this is translated to metadata_items.id, parents.id, or grandparents.id internally depending on the metadata type. sort: The field on which to sort. Multiple orderings can be specified separated by , and the direction specified following a : (desc or asc; asc is assumed if not provided). Note metadataItemID may not be used here. exclude_elements: Comma-separated list of elements to exclude from the response exclude_fields: Comma-separated list of fields to exclude from the response include_fields: Whitelist of fields to return include_elements: Whitelist of elements to include viewed_at_query: Greater-than filter for viewedAt timestamp viewed_at_query_2: Less-than filter for viewedAt timestamp device_id: Filter by device ID

list_syncB

Get Sync Status.

GET /sync

list_sync_itemsB

Get Sync Items.

GET /sync/items

list_sync_queueC

Get Sync Queue.

GET /sync/queue

list_sync_transcode_queueB

Get Sync Transcode Queue.

GET /sync/transcodeQueue

list_system_agentsB

Get Metadata Agents.

GET /system/agents

list_system_settingsB

Get System Settings.

GET /system/settings

list_system_updatesA

Check for System Updates.

GET /system/updates

list_transcode_sessionsA

Get Transcode Sessions.

GET /transcode/sessions

list_updater_statusA

Querying status of updates.

GET /updater/status

list_userC

Get Token Details.

GET /user

list_usersB

Get Legacy Users.

GET /api/users/

list_users_2B

Get list of all connected users.

GET /users

list_users_accountA

Get Account (XML).

GET /users/account

list_users_account_jsonB

Get Account (JSON).

GET /users/account.json

list_v2_user_webhooksC

User Webhooks.

GET /api/v2/user/webhooks

list_webhooksB

Get Webhooks.

GET /webhooks

list_websocket_notificationsB

Connect to WebSocket.

GET /:/websocket/notifications

Args:
    filter: By default, all events except logs are sent. A rich filtering mechanism is provided to allow clients to opt into or out of each event type using the `filters` parameter. For example:
  • filters=-log: All event types except logs (the default).

  • filters=foo,bar: Only the foo and bar event types.

  • filters=: All events types.

  • filters=-foo,bar: All event types except foo and bar.

list_websockets_notificationsB

Get WebSocket Notifications.

GET /:/websockets/notifications

patch_livetv_dvrs_by_dvr_idC

Update DVR Settings.

PATCH /livetv/dvrs/{dvrId}

Args: dvr_id: The ID of the DVR.

update_actions_remove_from_continue_watchingC

Remove From Continue Watching.

PUT /actions/removeFromContinueWatching

Args: key: The metadata key of the item

update_home_users_by_user_idC

Update Home User.

PUT /home/users/{userId}

Args: user_id: The unique identifier of the user

update_home_users_restricted_by_user_idC

Update Restricted User.

PUT /home/users/restricted/{userId}

Args: user_id: The unique identifier of the user

update_hubs_sections_by_section_id_manage_by_identifierA

Change hub visibility.

PUT /hubs/sections/{sectionId}/manage/{identifier}

Args: section_id: The section ID for the hubs to change identifier: The identifier of the hub to change promoted_to_recommended: Whether this hub should be displayed in recommended promoted_to_own_home: Whether this hub should be displayed in admin's home promoted_to_shared_home: Whether this hub should be displayed in shared user's home

update_hubs_sections_by_section_id_manage_moveA

Move Hub.

PUT /hubs/sections/{sectionId}/manage/move

Args: section_id: The section ID for the hubs to reorder identifier: The identifier of the hub to move after: The identifier of the hub to order this hub after (or empty/missing to put this hub first)

update_invites_requests_by_invite_idA

Accept an Invite.

PUT /api/invites/requests/{inviteId}

Args: invite_id: The pending invitation ID. friend: Whether the invitation includes a friend relationship. home: Whether the invitation includes Plex Home membership. server: Whether the invitation includes access to a shared server.

update_library_clean_bundlesC

Clean bundles.

PUT /library/clean/bundles

update_library_collections_by_collection_id_itemsA

Add items to a collection.

PUT /library/collections/{collectionId}/items

Args: collection_id: The collection id uri: The URI describing the items to add to this collection

update_library_collections_by_collection_id_items_by_item_idC

Update an item in a collection.

PUT /library/collections/{collectionId}/items/{itemId}

Args: collection_id: The collection id item_id: The item to delete

update_library_collections_by_collection_id_items_by_item_id_moveB

Reorder an item in the collection.

PUT /library/collections/{collectionId}/items/{itemId}/move

Args: collection_id: The collection id item_id: The item to move after: The item to move this item after. If not provided, this item will be moved to the beginning

update_library_metadata_by_idsC

Edit a metadata item.

PUT /library/metadata/{ids}

Args: ids: Comma-separated list of IDs args: The new values for the metadata item

update_library_metadata_by_ids_addetectC

Ad-detect an item.

PUT /library/metadata/{ids}/addetect

Args: ids: Comma-separated list of IDs

update_library_metadata_by_ids_analyzeC

Analyze an item.

PUT /library/metadata/{ids}/analyze

Args: ids: Comma-separated list of IDs thumb_offset: Set the offset to be used for thumbnails art_offset: Set the offset to be used for artwork

update_library_metadata_by_ids_by_elementB

Set an item's artwork, theme, etc.

PUT /library/metadata/{ids}/{element}

Args: ids: Comma-separated list of IDs element: The type of artwork element (e.g., art, poster, thumb) url: The url of the new asset.

update_library_metadata_by_ids_chapter_thumbsB

Generate thumbs of chapters for an item.

PUT /library/metadata/{ids}/chapterThumbs

Args: ids: Comma-separated list of IDs force: Force the operation even if conditions are not met

update_library_metadata_by_ids_creditsC

Credit detect a metadata item.

PUT /library/metadata/{ids}/credits

Args: ids: Comma-separated list of IDs force: Force the operation even if conditions are not met manual: Whether to perform the operation manually

update_library_metadata_by_ids_indexB

Start BIF generation of an item.

PUT /library/metadata/{ids}/index

Args: ids: Comma-separated list of IDs force: Force the operation even if conditions are not met

update_library_metadata_by_ids_introB

Intro detect an item.

PUT /library/metadata/{ids}/intro

Args: ids: Comma-separated list of IDs force: Indicate whether detection should be re-run threshold: The threshold for determining if content is an intro or not

update_library_metadata_by_ids_marker_by_markerB

Edit a marker.

PUT /library/metadata/{ids}/marker/{marker}

Args: ids: Comma-separated list of IDs marker: The id of the marker to edit type: The type of marker to edit/create start_time_offset: The start time of the marker end_time_offset: The end time of the marker attributes: The attributes to assign to this marker

update_library_metadata_by_ids_matchC

Match a metadata item.

PUT /library/metadata/{ids}/match

Args: ids: Comma-separated list of IDs guid: The guid name: The name year: The year to filter by

update_library_metadata_by_ids_matchesD

Get metadata matches for an item.

PUT /library/metadata/{ids}/matches

Args: ids: Comma-separated list of IDs title: The title to filter by parent_title: The parentTitle agent: The identifier of the metadata agent to use language: The language code to use year: The year to filter by manual: Whether to perform the operation manually

update_library_metadata_by_ids_mergeC

Merge a metadata item.

PUT /library/metadata/{ids}/merge

Args: ids: Comma-separated list of IDs ids_query: Comma-separated list of item identifiers

update_library_metadata_by_ids_prefsD

Set metadata preferences.

PUT /library/metadata/{ids}/prefs

Args: ids: Comma-separated list of IDs args: The args

update_library_metadata_by_ids_refreshB

Refresh a metadata item.

PUT /library/metadata/{ids}/refresh

Args: ids: Comma-separated list of IDs agent: The identifier of the metadata agent to use mark_updated: The markUpdated skip_refresh: Skip synchronous refresh

update_library_metadata_by_ids_splitB

Split a metadata item.

PUT /library/metadata/{ids}/split

Args: ids: Comma-separated list of IDs

update_library_metadata_by_ids_unmatchB

Unmatch a metadata item.

PUT /library/metadata/{ids}/unmatch

Args: ids: Comma-separated list of IDs

update_library_metadata_by_ids_voice_activityB

Detect voice activity.

PUT /library/metadata/{ids}/voiceActivity

Args: ids: Comma-separated list of IDs force: Indicate whether detection should be re-run manual: Indicate whether detection is manually run

update_library_optimizeB

Optimize the Database.

PUT /library/optimize

Args: async_: If set, don't wait for completion but return an activity

update_library_parts_by_part_idA

Set stream selection.

PUT /library/parts/{partId}

Args: part_id: The id of the part to select streams on audio_stream_id: The id of the audio stream to select in this part subtitle_stream_id: The id of the subtitle stream to select in this part. Specify 0 to select no subtitle all_parts: Perform the same for all parts of this media selecting similar streams in each

update_library_sections_by_section_idB

Edit a library section.

PUT /library/sections/{sectionId}

Args: section_id: The section identifier name: The name of the new section scanner: The scanner this section should use agent: The agent this section should use for metadata metadata_agent_provider_group_id: The agent group id for this section language: The language of this section locations: The locations on disk to add to this section prefs: The preferences for this section

update_library_sections_by_section_id_allA

Set the fields of the filtered items.

PUT /library/sections/{sectionId}/all

Args: section_id: The id of the section type: The media type to filter by filters: The filters to apply to determine which items should be modified field_value: Set the specified field to a new value field_locked: Set the specified field to locked (or unlocked if set to 0) title_value: This field is treated specially by albums or artists and may be used for implicit reparenting. artist_title_value: Reparents set of Tracks or Albums - used with album.title.* in the case of tracks artist_title_id: Reparents set of Tracks or Albums - used with album.title.* in the case of tracks album_title_value: Reparents set of Tracks - Must be used in conjunction with artist.title.value or id album_title_id: Reparents set of Tracks - Must be used in conjunction with artist.title.value or id tagtype_idx_tag_tag: Creates tag and associates it with each item in the set. - [idx] links this and the next parameters together tagtype_idx_tagging_object: Here object may be text/thumb/art/theme - Optionally used in conjunction with tag.tag, to update association info across the set. tagtype_tag_tag: Remove comma separated tags from the set of items tagtype_tag: Remove associations of this type (e.g. genre) from the set of items

update_library_sections_by_section_id_analyzeC

Analyze a section.

PUT /library/sections/{sectionId}/analyze

Args: section_id: Section identifier

update_library_sections_by_section_id_editC

Edit Section.

PUT /library/sections/{sectionId}/edit

Args: section_id: The unique identifier of the library section

update_library_sections_by_section_id_empty_trashC

Empty section trash.

PUT /library/sections/{sectionId}/emptyTrash

Args: section_id: Section identifier

update_library_sections_by_section_id_moveC

Move Section.

PUT /library/sections/{sectionId}/move

Args: section_id: The unique identifier of the library section

update_library_sections_by_section_id_prefsC

Set section prefs.

PUT /library/sections/{sectionId}/prefs

Args: section_id: Section identifier prefs: The preference key to retrieve or set

update_library_streams_by_stream_id_extB

Set a stream offset.

PUT /library/streams/{streamId}.{ext}

Args: stream_id: The id of the stream ext: This is not a part of this endpoint but documented here to satisfy OpenAPI offset: The offest in ms

update_livetv_dvrs_by_dvr_idC

Update DVR Settings.

PUT /livetv/dvrs/{dvrId}

Args: dvr_id: The ID of the DVR.

update_livetv_dvrs_by_dvr_id_devices_by_device_idA

Add a device to an existing DVR.

PUT /livetv/dvrs/{dvrId}/devices/{deviceId}

Args: dvr_id: The ID of the DVR. device_id: The ID of the device to add.

update_livetv_dvrs_by_dvr_id_lineupsC

Add a DVR Lineup.

PUT /livetv/dvrs/{dvrId}/lineups

Args: dvr_id: The ID of the DVR. lineup: The lineup to delete

update_livetv_dvrs_by_dvr_id_prefsB

Set DVR preferences.

PUT /livetv/dvrs/{dvrId}/prefs

Args: dvr_id: The ID of the DVR. name: Set the name preference to the provided value value: Preference value to set.

update_logA

Logging a single-line message to the Plex Media Server log.

PUT /log

Args: level: An integer log level to write to the PMS log with.

  • 0: Error

  • 1: Warning

  • 2: Info

  • 3: Debug

  • 4: Verbose message: The text of the message to write to the log. source: A string indicating the source of the message.

update_media_grabbers_devices_by_device_idA

Enable or disable a device.

PUT /media/grabbers/devices/{deviceId}

Args: device_id: The ID of the device. enabled: Whether to enable the device

update_media_grabbers_devices_by_device_id_channelmapB

Set a device's channel mapping.

PUT /media/grabbers/devices/{deviceId}/channelmap

Args: device_id: The ID of the device. channel_mapping: The mapping of changes, passed as a map of device channel to lineup VCN. channel_mapping_by_key: The mapping of changes, passed as a map of device channel to lineup key. channels_enabled: The channels which are enabled.

update_media_grabbers_devices_by_device_id_prefsC

Set device preferences.

PUT /media/grabbers/devices/{deviceId}/prefs

Args: device_id: The ID of the device. name: The preference names and values. value: Preference value to set.

update_media_subscriptions_by_subscription_idC

Edit a subscription.

PUT /media/subscriptions/{subscriptionId}

Args: subscription_id: The unique identifier of the subscription prefs: The preference key to retrieve or set

update_media_subscriptions_by_subscription_id_moveA

Re-order a subscription.

PUT /media/subscriptions/{subscriptionId}/move

Args: subscription_id: The unique identifier of the subscription after: The subscription to move this sub after. If missing will insert at the beginning of the list

update_myplex_refresh_reachabilityC

Refresh Reachability.

PUT /myplex/refreshReachability

update_pins_linkC

Link OAuth PIN.

PUT /pins/link

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

update_play_queues_by_play_queue_idA

Add a generator or playlist to a play queue.

PUT /playQueues/{playQueueId}

Args: play_queue_id: The ID of the play queue. uri: The content URI for what we're adding to the queue. playlist_id: The ID of the playlist to add to the playQueue. next: Play this item next (defaults to 0 - queueing at the end of manually queued items).

update_play_queues_by_play_queue_id_items_by_play_queue_item_id_moveC

Move an item in a play queue.

PUT /playQueues/{playQueueId}/items/{playQueueItemId}/move

Args: play_queue_id: The ID of the play queue. play_queue_item_id: The play queue item ID to delete. after: The play queue item ID to insert the new item after. If not present, moves to the beginning.

update_play_queues_by_play_queue_id_resetB

Reset a play queue.

PUT /playQueues/{playQueueId}/reset

Args: play_queue_id: The ID of the play queue.

update_play_queues_by_play_queue_id_shuffleB

Shuffle a play queue.

PUT /playQueues/{playQueueId}/shuffle

Args: play_queue_id: The ID of the play queue.

update_play_queues_by_play_queue_id_unshuffleB

Unshuffle a play queue.

PUT /playQueues/{playQueueId}/unshuffle

Args: play_queue_id: The ID of the play queue.

update_playlists_by_playlist_idB

Editing a Playlist.

PUT /playlists/{playlistId}

Args: playlist_id: The ID of the playlist

update_playlists_by_playlist_id_itemsC

Adding to a Playlist.

PUT /playlists/{playlistId}/items

Args: playlist_id: The ID of the playlist uri: The content URI for the playlist. play_queue_id: The play queue to add to a playlist.

update_playlists_by_playlist_id_items_by_generator_idC

Modify a Generator.

PUT /playlists/{playlistId}/items/{generatorId}

Args:
    playlist_id: The ID of the playlist
    generator_id: The generator item ID to modify.
    item: Note: OpenAPI cannot properly render this query parameter example ([See GHI](https://github.com/OAI/OpenAPI-Specification/issues/1706)).  It should be rendered as:

Item[type]=42&Item[title]=Jack-Jack Attack&Item[target]=&Item[targetTagID]=1&Item[locationID]=-1&Item[Location][uri]=library://82503060-0d68-4603-b594-8b071d54819e/item//library/metadata/146&Item[Policy][scope]=all&Item[Policy][value]=&Item[Policy][unwatched]=0

update_playlists_by_playlist_id_items_by_generator_id_by_metadata_id_by_actionB

Reprocess a generator.

PUT /playlists/{playlistId}/items/{generatorId}/{metadataId}/{action}

Args: playlist_id: The ID of the playlist generator_id: The generator item ID to act on metadata_id: The metadata item ID to act on action: The action to perform for this item on this optimizer queue

update_playlists_by_playlist_id_items_by_playlist_item_id_moveA

Moving items in a playlist.

PUT /playlists/{playlistId}/items/{playlistItemId}/move

Args: playlist_id: The ID of the playlist playlist_item_id: The playlist item ID to move. after: The playlist item ID to insert the new item after. If not provided, item is moved to beginning of playlist

update_prefsC

Set preferences.

PUT /:/prefs

Args: prefs: The preference key to retrieve or set

update_rateA

Rate an item.

PUT /:/rate

Args: identifier: The identifier of the media provider containing the media to rate. Typically com.plexapp.plugins.library key: The key of the item to rate. This is the ratingKey found in metadata items rating: The rating to give the item. rated_at: The time when the rating occurred. If not present, interpreted as now.

update_scrobbleB

Mark an item as played.

PUT /:/scrobble

Args: identifier: The identifier of the media provider containing the media to rate. Typically com.plexapp.plugins.library key: The key of the item to rate. This is the ratingKey found in metadata items uri: URI of the item to scrobble. Format is library://<section-uuid>/item/<url-encoded-key> or plex://movie/<guid> or plex://episode/<guid>.

update_sharings_by_user_idC

Update Share.

PUT /sharings/{userId}

Args: user_id: The unique identifier of the user

update_sync_refresh_contentB

Refresh Sync Content.

PUT /sync/refreshContent

update_sync_refresh_synclistsC

Refresh Sync Lists.

PUT /sync/refreshSynclists

update_unscrobbleB

Mark an item as unplayed.

PUT /:/unscrobble

Args: identifier: The identifier of the media provider containing the media to rate. Typically com.plexapp.plugins.library key: The key of the item to rate. This is the ratingKey found in metadata items uri: URI of the item to scrobble. Format is library://<section-uuid>/item/<url-encoded-key> or plex://movie/<guid> or plex://episode/<guid>.

update_updater_applyA

Applying updates.

PUT /updater/apply

Args: tonight: Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install immediately. skip: Indicate that the latest version should be marked as skipped. The entry for this version will have the state set to skipped.

update_updater_checkA

Checking for updates.

PUT /updater/check

Args: download: Indicate that you want to start download any updates found.

update_user_view_state_syncC

Update View State Sync.

PUT /user/view_state_sync

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.2/5.0

Scored across 405 tools

Disambiguation1/5

With 405 auto-generated tools, many are near-duplicates or have unclear boundaries, such as delete_playlists vs delete_playlists_by_playlist_id and multiple library section listing variants. Several GET tools are even described as 'Set...' while POST/PUT versions of the same path exist, making misselection very likely.

Naming Consistency2/5

Names follow a raw HTTP-verb-plus-path pattern (create_/get_/list_/update_/delete_), but 'get' and 'list' are used inconsistently for GET endpoints, and 'create_' is applied to non-creation actions like create_timeline and create_status_sessions_terminate. Oddities like list_resources_2 and list_prefs_get further break predictability.

Tool Count1/5

405 tools is an extreme count for a single MCP server and appears to be an uncurated dump of the entire Plex REST API. This overwhelms context and makes tool selection impractical; a much smaller curated subset would be appropriate.

Completeness4/5

The surface is exhaustive, covering library, playlists, play queues, sessions, DVR, sync, users, and system settings, so few major operations are missing. It loses a point because the raw endpoint dump includes many low-level/legacy operations and uneven lifecycle pairs rather than a clean, coherent API surface.

Maintenance

ActivityMaintained
ResponsivenessNo issues