Plex Provider API

Media providers are the starting points for the entire Plex Media Server media library API. It defines the paths for the groups of endpoints. The `/media/providers` should be the only hard-coded path in clients when accessing the media library. Non-media library endpoints are outside the scope of the media provider. See the description in See [the section in API Info](#section/API-Info/Media-Providers) for more information on how to use media providers.

Operations 4

GET /media/providers Get the list of available media providers #
POST /media/providers Add a media provider #
POST /media/providers/refresh Refresh media providers #
DELETE /media/providers/{provider} Delete a media provider #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/plex-provider-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

plex-provider-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Plex Media Server Provider API
  version: '1.2.2

    '
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  description: '# API Info

    ## Content Types

    The API supports responses in both XML and JSON, and clients can request one or the other using the standard `Accept` HTTP header.'
servers:
- url: https://{IP-description}.{identifier}.plex.direct:{port}
  variables:
    IP-description:
      default: 1-2-3-4
      description: A `-` separated string of the IPv4 or IPv6 address components
    identifier:
      default: 0123456789abcdef0123456789abcdef
      description: The unique identifier of this particular PMS
    port:
      default: '32400'
security:
- user_token:
  - shared user
  - admin
tags:
- name: Provider
  description: Media providers are the starting points for the entire Plex Media Server media library API. It defines the paths for the groups of endpoints. The `/media/providers` should be the only hard-coded path in clients when accessing the media library. Non-media library endpoints are outside the scope of the media provider. See the description in See the section in API Info for more information on how to use media providers.
paths:
  /media/providers:
    get:
      tags:
      - Provider
      operationId: getMediaProviders
      summary: Get the list of available media providers
      description: Get the list of all available media providers for this PMS. This will generally include the library provider and possibly EPG if DVR is set up.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  MediaContainer:
                    allOf:
                    - $ref: '#/components/schemas/serverConfiguration'
                    - type: object
                      properties:
                        identifier:
                          type: string
                          description: A unique identifier for the provider, e.g. `com.plexapp.plugins.library`.
                        title:
                          type: string
                          description: The title of the provider.
                        types:
                          type: string
                          description: This attribute contains a comma-separated list of the media types exposed by the provider (e.g. `video, audio`).
                        protocols:
                          type: string
                          description: 'A comma-separated list of default protocols for the provider, which can be:

                            - `stream`: The provider allows streaming media directly from the provider (e.g. for Vimeo). - `download`: The provider allows downloading media for offline storage, sync, etc. (e.g. Podcasts). - `livetv`: The provider provides live content which is only available on a schedule basis.'
                        Feature:
                          type: array
                          items:
                            type: object
                            properties:
                              key:
                                type: string
                              type:
                                type: string
                              Directory:
                                type: array
                                items:
                                  $ref: '#/components/schemas/directory'
              examples:
                providerWithEpg:
                  summary: Media providers including EPG
                  value:
                    MediaContainer:
                      size: 2
                      allowCameraUpload: true
                      allowChannelAccess: true
                      allowMediaDeletion: true
                      allowSharing: true
                      allowSync: true
                      allowTuners: true
                      backgroundProcessing: true
                      certificate: true
                      companionProxy: true
                      countryCode: usa
                      diagnostics: logs,databases,streaminglogs
                      eventStream: true
                      friendlyName: Server Name
                      hubSearch: true
                      itemClusters: true
                      livetv: 7
                      machineIdentifier: c997cf82c4158cb986ccc0e8f829a6f5d5086a63
                      mediaProviders: true
                      multiuser: true
                      musicAnalysis: 2
                      myPlex: true
                      myPlexMappingState: mapped
                      myPlexSigninState: ok
                      myPlexSubscription: true
                      myPlexUsername: me@somewhere.else
                      offlineTranscode: 1
                      ownerFeatures: adaptive_bitrate,advanced-playback-settings,camera_upload,collections,content_filter,download_certificates,dvr,federated-auth,hardware_transcoding,home,hwtranscode,item_clusters,kevin-bacon,livetv,loudness,lyrics,music-analysis,music_videos,pass,photosV6-edit,photosV6-tv-albums,premium_music_metadata,radio,session_bandwidth_restrictions,session_kick,shared-radio,sync,trailers,tuner-sharing,type-first,ump-matching-pref,unsupportedtuners,webhooks
                      platform: MacOSX
                      platformVersion: 14.4.1
                      pluginHost: true
                      pushNotifications: false
                      readOnlyLibraries: false
                      streamingBrainABRVersion: 3
                      streamingBrainVersion: 2
                      sync: true
                      transcoderActiveVideoSessions: 0
                      transcoderAudio: true
                      transcoderLyrics: true
                      transcoderPhoto: true
                      transcoderSubtitles: true
                      transcoderVideo: true
                      transcoderVideoBitrates: 64,96,208,320,720,1500,2000,3000,4000,8000,10000,12000,20000
                      transcoderVideoQualities: 0,1,2,3,4,5,6,7,8,9,10,11,12
                      transcoderVideoResolutions: 128,128,160,240,320,480,768,720,720,1080,1080,1080,1080
                      updatedAt: 1714653009
                      updater: true
                      version: 1.40.2.8395-c67dce28e
                      voiceSearch: true
                      MediaProvider:
                      - identifier: com.plexapp.plugins.library
                        title: Library
                        types: video,audio,photo
                        protocols: stream,download
                        Feature:
                        - key: /library/sections
                          type: content
                          Directory:
                          - hubKey: /hubs
                            title: Home
                          - agent: tv.plex.agents.movie
                            language: en-US
                            refreshing: false
                            scanner: Plex Movie
                            uuid: 82503060-0d68-4603-b594-8b071d54819e
                            id: '1'
                            key: /library/sections/1
                            hubKey: /hubs/sections/1
                            type: movie
                            title: Movies
                            updatedAt: 1689270983
                            scannedAt: 1706626696
                            Pivot:
                            - id: recommended
                              key: /hubs/sections/1
                              type: hub
                              title: Recommended
                              context: content.discover
                              symbol: star
                            - id: library
                              key: /library/sections/1/all?type=1
                              type: list
                              title: Library
                              context: content.library
                              symbol: library
                            - id: collections
                              key: /library/sections/1/collections
                              type: list
                              title: Collections
                              context: content.collections
                              symbol: stack
                            - id: categories
                              key: /library/sections/1/categories
                              type: list
                              title: Categories
                              context: content.categories
                              symbol: stack
                          - agent: tv.plex.agents.series
                            language: en-US
                            refreshing: false
                            scanner: Plex TV Series
                            uuid: 3a85ee1d-238c-4af9-88ee-45fc634fc478
                            id: '2'
                            key: /library/sections/2
                            hubKey: /hubs/sections/2
                            type: show
                            title: TV Shows
                            updatedAt: 1682628353
                            scannedAt: 1714485942
                            Pivot:
                            - id: recommended
                              key: /hubs/sections/2
                              type: hub
                              title: Recommended
                              context: content.discover
                              symbol: star
                            - id: library
                              key: /library/sections/2/all?type=2
                              type: list
                              title: Library
                              context: content.library
                              symbol: library
                            - id: categories
                              key: /library/sections/2/categories
                              type: list
                              title: Categories
                              context: content.categories
                              symbol: stack
                          - agent: tv.plex.agents.music
                            language: en-US
                            refreshing: false
                            scanner: Plex Music
                            uuid: d7fd8c81-a345-4e68-8113-92f23cb47e70
                            id: '3'
                            key: /library/sections/3
                            hubKey: /hubs/sections/3
                            type: artist
                            title: Music
                            updatedAt: 1691606667
                            scannedAt: 1690487664
                            Pivot:
                            - id: recommended
                              key: /hubs/sections/3
                              type: hub
                              title: Recommended
                              context: content.discover
                              symbol: star
                            - id: library
                              key: /library/sections/3/all?type=8
                              type: list
                              title: Library
                              context: content.library
                              symbol: library
                            - id: playlists
                              key: /playlists?type=15&sectionID=3&playlistType=audio
                              type: list
                              title: Playlists
                              context: content.playlists
                              symbol: playlist
                          - id: playlists
                            key: /playlists
                            type: playlist
                            title: Playlists
                            Pivot:
                            - id: playlists.audio
                              key: /playlists?playlistType=audio
                              type: list
                              title: Music
                              context: content.playlists.music
                              symbol: playlist
                            - id: playlists.video
                              key: /playlists?playlistType=video
                              type: list
                              title: Video
                              context: content.playlists.video
                              symbol: playlist
                        - key: /hubs/search
                          type: search
                        - key: /library/matches
                          type: match
                        - key: /library/metadata
                          type: metadata
                        - key: /:/rate
                          type: rate
                        - key: /photo/:/transcode
                          type: imagetranscoder
                        - key: /hubs/promoted
                          type: promoted
                        - key: /hubs/continueWatching
                          type: continuewatching
                        - key: /actions
                          type: actions
                          Action:
                          - id: removeFromContinueWatching
                            key: /actions/removeFromContinueWatching
                        - flavor: universal
                          key: /playlists
                          type: playlist
                        - flavor: universal
                          key: /playQueues
                          type: playqueue
                        - key: /library/collections
                          type: collection
                        - scrobbleKey: /:/scrobble
                          unscrobbleKey: /:/unscrobble
                          key: /:/timeline
                          type: timeline
                        - type: manage
                        - type: queryParser
                        - flavor: download
                          type: subscribe
                      - id: 13
                        parentID: 12
                        identifier: tv.plex.providers.epg.cloud:12
                        providerIdentifier: tv.plex.providers.epg.cloud
                        title: Live TV & DVR
                        types: video
                        protocols: livetv
                        epgSource: Gracenote
                        friendlyName: My Server
                        Feature:
                        - key: /tv.plex.providers.epg.cloud:12/sections
                          type: content
                          Directory:
                          - id: tv.plex.providers.epg.cloud:12
                            hubKey: /tv.plex.providers.epg.cloud:12/hubs/discover
                            title: Live TV & DVR
                            Pivot:
                            - id: dvr.whatson
                              key: /tv.plex.providers.epg.cloud:12/hubs/discover
                              type: hub
                              title: What's On
                              context: content.dvr.discover
                              symbol: star
                            - id: dvr.guide
                              key: view://dvr/guide
                              type: view
                              title: Guide
                              context: content.dvr.guide
                              symbol: guide
                            - id: dvr.schedule
                              key: view://dvr/recording-schedule
                              type: view
                              title: DVR Schedule
                              context: content.dvr.schedule
                              symbol: schedule
                            - id: dvr.priority
                              key: view://dvr/recording-priority
                              type: view
                              title: Recording Priority
                              context: content.dvr.priority
                              symbol: list
                            - id: dvr.browse
                              key: /tv.plex.providers.epg.cloud:12/sections/2/all?type=4
                              type: list
                              title: Browse
                              context: content.dvr.browse
                              symbol: library
                          - type: mixed
                            key: /tv.plex.providers.epg.cloud:12/watchnow
                            title: Guide
                            icon: /:/resources/dvr/dvr-watchnow-icon.png
                          - key: /tv.plex.providers.epg.cloud:12/sections/1
                            type: movie
                            title: Movies
                            icon: /:/resources/dvr/dvr-movies-icon.png
                            updatedAt: 171458958"
                          - key: /tv.plex.providers.epg.cloud:12/sections/2
                            type: show
                            title: Shows
                            icon: /:/resources/dvr/dvr-allshows-icon.png
                            updatedAt: 171458958"
                          - key: /tv.plex.providers.epg.cloud:12/sections/3
                            type: show
                            title: Sports
                            icon: /:/resources/dvr/dvr-sports-icon.png
                            updatedAt: 171458958"
                        - key: /tv.plex.providers.epg.cloud:12/hubs/search
                          type: search
                        - key: /tv.plex.providers.epg.cloud:12/matches
                          type: match
                        - key: /tv.plex.providers.epg.cloud:12/metadata
                          type: metadata
                        - key: /photo/:/transcode
                          type: imagetranscoder
                        - key: /tv.plex.providers.epg.cloud:12/hubs/discover?promoted=1&includeTypeFirst=1
                          type: promoted
                        - key: /tv.plex.providers.epg.cloud:12/grid
                          type: grid
                          GridChannelFilter:
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6006cc1a610ee2002c74f34a
                            title: Hit TV
                            genreRatingKey: genre_6006cc1a610ee2002c74f34a
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6006cc1a610ee2002c74f33f
                            title: Crime
                            genreRatingKey: genre_6006cc1a610ee2002c74f33f
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6006cc1d610ee2002c74f38c
                            title: Reality
                            genreRatingKey: genre_6006cc1d610ee2002c74f38c
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6006cc1d610ee2002c74f37a
                            title: News
                            genreRatingKey: genre_6006cc1d610ee2002c74f37a
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_620143f98578b9238e1cdb8a
                            title: Sports
                            genreRatingKey: genre_620143f98578b9238e1cdb8a
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6006cc1b610ee2002c74f358
                            title: Game Shows
                            genreRatingKey: genre_6006cc1b610ee2002c74f358
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6529021f0f3f142ea6049ecc
                            title: History & Science
                            genreRatingKey: genre_6529021f0f3f142ea6049ecc
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6006cc18610ee2002c74f2f6
                            title: Sci-Fi & Action
                            genreRatingKey: genre_6006cc18610ee2002c74f2f6
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_620143f98578b9238e1cdb89
                            title: Movies
                            genreRatingKey: genre_620143f98578b9238e1cdb89
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6006cc18610ee2002c74f308
                            title: Chills & Thrills
                            genreRatingKey: genre_6006cc18610ee2002c74f308
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6529021f0f3f142ea6049ecb
                            title: Classic TV
                            genreRatingKey: genre_6529021f0f3f142ea6049ecb
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6529021f0f3f142ea6049ecd
                            title: Nature & Travel
                            genreRatingKey: genre_6529021f0f3f142ea6049ecd
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6006cc18610ee2002c74f2f9
                            title: Comedy
                            genreRatingKey: genre_6006cc18610ee2002c74f2f9
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6529021f0f3f142ea6049ece
                            title: Black Entertainment
                            genreRatingKey: genre_6529021f0f3f142ea6049ece
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6006cc1a610ee2002c74f33b
                            title: Cooking
                            genreRatingKey: genre_6006cc1a610ee2002c74f33b
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6006cc1b610ee2002c74f361
                            title: Home
                            genreRatingKey: genre_6006cc1b610ee2002c74f361
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6074b802507c8d42cf7e1678
                            title: Kids & Family
                            genreRatingKey: genre_6074b802507c8d42cf7e1678
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6529021f0f3f142ea6049ed0
                            title: Sporting
                            genreRatingKey: genre_6529021f0f3f142ea6049ed0
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6171e01d4c451f5a44debdf6
                            title: En Español
                            genreRatingKey: genre_6171e01d4c451f5a44debdf6
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6529021f0f3f142ea6049ecf
                            title: International
                            genreRatingKey: genre_6529021f0f3f142ea6049ecf
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_60d37385f631b9aabb67bf37
                            title: Gaming & Anime
                            genreRatingKey: genre_60d37385f631b9aabb67bf37
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_620143f98578b9238e1cdb88
                            title: Lifestyle
                            genreRatingKey: genre_620143f98578b9238e1cdb88
                          - key: /tv.plex.providers.epg.cloud:12/lineups/dvr/channels?genre=genre_6006cc1c610ee2002c74f378
                            title: Music
                            genreRatingKey: genre_6006cc1c610ee2002c74f378
                        - key: /tv.plex.providers.epg.cloud:12/collections
                          type: collection
                        - scrobbleKey: /:/scrobble
                          unscrobbleKey: /:/unscrobble
                          key: /:/timeline
                          type: timeline
                        - flavor: record
                          type: subscribe
    post:
      tags:
      - Provider
      operationId: postMediaProviders
      summary: Add a media provider
      description: This endpoint registers a media provider with the server. Once registered, the media server acts as a reverse proxy to the provider, allowing both local and remote providers to work.
      parameters:
      - in: query
        name: url
        required: true
        schema:
          type: string
        description: The URL of the media provider to add.
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
  /media/providers/refresh:
    post:
      tags:
      - Provider
      operationId: postMediaProvidersRefresh
      summary: Refresh media providers
      description: Refresh all known media providers. This is useful in case a provider has updated features.
      responses:
        '200':
          $ref: '#/components/responses/200'
  /media/providers/{provider}:
    delete:
      tags:
      - Provider
      operationId: deleteMediaProvider
      summary: Delete a media provider
      description: Deletes a media provider with the given id
      parameters:
      - in: path
        name: provider
        schema:
          type: string
        description: The ID of the media provider to delete
        required: true
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          $ref: '#/components/responses/400'
        '403':
          description: Cannot delete a provider which is a child of another provider
          content:
            text/html:
              examples:
                forbidden:
                  summary: Forbidden
                  value: <html><head><title>Forbidden</title></head><body><h1>403 Forbidden</h1></body></html>
components:
  schemas:
    directory:
      type: object
      properties:
        hubKey:
          type: string
        key:
          type: string
        title:
          type: string
        thumb:
          type: string
        art:
          type: string
        share:
          type: integer
        hasStoreServices:
          type: boolean
        hasPrefs:
          type: boolean
        identifier:
          type: string
        titleBar:
          type: string
        lastAccessedAt:
          type: integer
        type:
          type: string
        content:
          type: boolean
        filter:
          type: string
        Pivot:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              key:
                type: string
              type:
                type: string
              title:
                type: string
              context:
                type: string
              symbol:
                type: string
      additionalProperties: true
    MediaContainer:
      type: object
      properties:
        identifier:
          type: string
        size:
          type: integer
        totalSize:
          type: integer
          description: The total size of objects available.  Also provided in the X-Plex-Container-Total-Size header
        offset:
          type: integer
          description: The offset of where this container page starts among the total objects available.  Also provided in the X-Plex-Container-Start header
    serverConfiguration:
      allOf:
      - $ref: '#/components/schemas/MediaContainer'
      - type: object
        properties:
          allowCameraUpload:
            type: boolean
          allowChannelAccess:
            type: boolean
          allowMediaDeletion:
            type: boolean
          allowSharing:
            type: boolean
          allowSync:
            type: boolean
          allowTuners:
            type: boolean
          backgroundProcessing:
            type: boolean
          certificate:
            type: boolean
          companionProxy:
            type: boolean
          countryCode:
            type: string
          diagnostics:
            type: string
          eventStream:
            type: boolean
          friendlyName:
            type: string
          hubSearch:
            type: boolean
          itemClusters:
            type: boolean
          livetv:
            type: integer
            example: 7
          machineIdentifier:
            example: 0123456789abcdef0123456789abcdef012345678
          mediaProviders:
            type: boolean
          multiuser:
            type: boolean
          musicAnalysis:
            type: integer
            example: 2
          myPlex:
            type: boolean
          myPlexMappingState:
            example: mapped
          myPlexSigninState:
            example: ok
          myPlexSubscription:
            type: boolean
          myPlexUsername:
            type: string
          offlineTranscode:
            example: 1
          ownerFeatures:
            description: A comma-separated list of features which are enabled for the server owner
            type: string
          platform:
            type: string
          platformVersion:
            type: string
          pluginHost:
            type: boolean
          pushNotifications:
            type: boolean
          readOnlyLibraries:
            type: boolean
          streamingBrainABRVersion:
            type: integer
          streamingBrainVersion:
            type: integer
          sync:
            type: boolean
          transcoderActiveVideoSessions:
            type: integer
          transcoderAudio:
            type: boolean
          transcoderLyrics:
            type: boolean
          transcoderPhoto:
            type: boolean
          transcoderSubtitles:
            type: boolean
          transcoderVideo:
            type: boolean
          transcoderVideoBitrates:
            description: The suggested video quality bitrates to present to the user
          transcoderVideoQualities:
            type: string
          transcoderVideoResolutions:
            description: The suggested video resolutions to the above quality bitrates
          updatedAt:
            type: integer
          updater:
            type: boolean
          version:
            type: string
          voiceSearch:
            type: boolean
  responses:
    '200':
      description: OK
      content:
        text/html:
          examples:
            ok:
              summary: OK
              value: ''
    '400':
      description: Bad Request
      content:
        text/html:
          examples:
            badRequest:
              summary: A parameter has a bad value or required parameter is missing
              value: <html><head><title>Bad Request</title></head><body><h1>400 Bad Request</h1></body></html>
  securitySchemes:
    user_token:
      type: apiKey
      in: header
      name: X-Plex-Token
      description: The token which identifies the user accessing the PMS.  This is typically provided to the client by plex.tv. This can be either a traditional access token or a JWT token obtained through the JWT authentication flow.
x-tagGroups:
- name: General
  tags:
  - General
  - Library
  - Library Playlists
  - Library Collections
  - Status
  - Activities
  - Updater
  - Butler
  - Events
  - Log
  - Preferences
  - Download Queue
  - UltraBlur
  - Transcoder
- name: Media Provider
  tags:
  - Provider
  - Metadata Agents
  - Content
  - Hubs
  - Search
  - Rate
  - Playlist
  - Play Queue
  - Timeline
- name: DVR
  tags:
  - DVRs
  - Devices
  - EPG
  - Subscriptions
  - Live TV