Plex MCP server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PLEX_URL | Yes | The URL of your Plex media server (e.g., http://127.0.0.1:32400) | |
| PLEX_TOKEN | Yes | Your 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 |
| 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
|
| 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 |
| 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. |
| 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 |
| create_security_tokenB | Get Transient Tokens. POST /security/token Args:
type: The value |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| get_library_people_by_person_id_mediaA | Get media for a person. GET /library/people/{personId}/media Args:
person_id: Either the PMS tag |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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.
|
| 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 |
| 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.
|
| 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. 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 |
| 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.
|
| 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 |
| 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 |
| 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.
|
| 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. 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 |
| update_scrobbleB | Mark an item as played. PUT /:/scrobble Args:
identifier: The identifier of the media provider containing the media to rate. Typically |
| 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 |
| 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 |
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 405 tools
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.
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.
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.
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.