Plex · AsyncAPI Specification

Plex Webhooks

Version

View Spec View on GitHub CompanyMediaStreamingVideoMusicMedia ServerEntertainmentSelf-HostedPersonal MediaHome AutomationAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-05'
method: searched
source: https://support.plex.tv/articles/115002267687-webhooks/
spec_type: none
spec_note: Plex publishes no AsyncAPI, no CloudEvents mapping and no machine-readable
  event schema. The webhook catalogue below is captured from the support article;
  the streaming surfaces are declared operations in the Plex Media Server OpenAPI.
surface: webhooks + server-push streams
webhooks:
  docs: https://support.plex.tv/articles/115002267687-webhooks/
  configuration: Account settings in the Plex Web App (user menu, top right).
  requirements:
  - An active Plex Pass subscription.
  - Tied to the admin/owner account of the Plex Media Server.
  transport: HTTP POST
  content_type: multipart/form-data
  payload_field: payload (JSON)
  attachment: For events flagged below, a JPEG thumbnail is included as a second
    part of the multipart POST.
  signing: none documented
  retries: none documented
  payload_shape:
    top_level:
    - event
    - user
    - owner
    objects:
    - name: Account
      fields:
      - id
      - title
      - thumb
    - name: Server
      fields:
      - title
      - uuid
    - name: Player
      fields:
      - title
      - uuid
      - publicAddress
      - local
    - name: Metadata
      fields: Full metadata object for the item, as returned by the library API.
  events:
  - event: library.on.deck
    group: new content
    description: A new item is added that appears in the user's On Deck.
    thumbnail: true
  - event: library.new
    group: new content
    description: A new item is added to a library to which the user has access.
    thumbnail: true
  - event: media.pause
    group: playback
    description: Media playback pauses.
    thumbnail: false
  - event: media.play
    group: playback
    description: Media starts playing.
    thumbnail: true
  - event: media.rate
    group: playback
    description: Media is rated.
    thumbnail: true
  - event: media.resume
    group: playback
    description: Media playback resumes.
    thumbnail: false
  - event: media.scrobble
    group: playback
    description: Media is viewed past the 90% mark.
    thumbnail: false
  - event: media.stop
    group: playback
    description: Media playback stops.
    thumbnail: false
  - event: admin.database.backup
    group: server owner
    description: A database backup completed successfully.
    owner_only: true
    thumbnail: false
  - event: admin.database.corrupted
    group: server owner
    description: Database corruption was detected.
    owner_only: true
    thumbnail: false
  - event: device.new
    group: server owner
    description: A device accesses the owner's server.
    owner_only: true
    thumbnail: false
  - event: playback.started
    group: server owner
    description: Playback is started by a shared user for the owner's server.
    owner_only: true
    thumbnail: true
streaming:
  source: openapi/plex-media-server-openapi.json
  channels:
  - operationId: websocketGetSlash
    path: /:/websocket/notifications
    protocol: WebSocket
    summary: Connect to WebSocket
    tag: Events
  - operationId: eventsourceGetSlash
    path: /:/eventsource/notifications
    protocol: SSE
    summary: Connect to Eventsource
    tag: Events
  note: Both are declared operations in the published OpenAPI but carry no message
    schema — the notification payloads they emit are not described anywhere public.
examples:
  first_party_reference_implementations:
  - name: webhooks-home-automation
    url: https://github.com/plexinc/webhooks-home-automation
    description: Use Plex webhooks to control lighting in your home.
  - name: webhooks-notifications
    url: https://github.com/plexinc/webhooks-notifications
    description: Use Plex webhooks to display desktop notifications and control
      playback.
  - name: webhooks-slack
    url: https://github.com/plexinc/webhooks-slack
    description: Use Plex webhooks to push media notifications into Slack.
gaps:
- No AsyncAPI document for the webhook catalogue or the WebSocket/SSE streams.
- No payload JSON Schema, so consumers reverse-engineer the shape from examples.
- No webhook signature or shared secret is documented, so receivers cannot verify
  origin.
- The webhook catalogue lives in the support knowledge base, not in the developer
  documentation, and is not linked from the OpenAPI.
x-evidence:
- fetched: '2026-08-05'
  url: https://support.plex.tv/articles/115002267687-webhooks/
  http_status: 200
- fetched: '2026-08-05'
  url: https://github.com/plexinc
  http_status: 200