Plex Activities API

Activities provide a way to monitor and control asynchronous operations on the server. In order to receive real-time updates for activities, a client would normally subscribe via either EventSource or Websocket endpoints. Activities are associated with HTTP replies via a special `X-Plex-Activity` header which contains the UUID of the activity. Activities are optional cancellable. If cancellable, they may be cancelled via the `DELETE` endpoint.

Operations 2

GET /activities Get all activities #
DELETE /activities/{activityId} Cancel a running activity #

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-activities-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-activities-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Plex Media Server Activities 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: Activities
  description: 'Activities provide a way to monitor and control asynchronous operations on the server. In order to receive real-time updates for activities, a client would normally subscribe via either EventSource or Websocket endpoints.


    Activities are associated with HTTP replies via a special `X-Plex-Activity` header which contains the UUID of the activity.


    Activities are optional cancellable. If cancellable, they may be cancelled via the `DELETE` endpoint.'
paths:
  /activities:
    get:
      tags:
      - Activities
      summary: Get all activities
      description: List all activities on the server. Admins can see all activities but other users can only see their own
      operationId: activitiesGetSlash
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  MediaContainer:
                    allOf:
                    - type: object
                      properties:
                        Activity:
                          type: array
                          items:
                            type: object
                            properties:
                              uuid:
                                type: string
                                description: The ID of the activity
                              type:
                                type: string
                                description: The type of activity
                              cancellable:
                                type: boolean
                                description: Indicates whether this activity can be cancelled
                              userID:
                                type: integer
                                description: The user this activity belongs to
                              title:
                                type: string
                                description: A user-friendly title for this activity
                              subtitle:
                                type: string
                                description: A user-friendly sub-title for this activity
                              progress:
                                type: number
                                maximum: 100
                                minimum: -1
                                description: A progress percentage.  A value of -1 means the progress is indeterminate
                              Context:
                                type: object
                                additionalProperties: true
                                description: An object with additional values
                              Response:
                                type: object
                                additionalProperties: true
                                description: An object with the response to the async opperation
              examples:
                activity:
                  description: Activity of updating EPG and detecting credits
                  value:
                    MediaContainer:
                      size: 2
                      Activity:
                      - uuid: d6199ba1-fb5e-4cae-bf17-1a5369c1cf1e
                        cancellable: false
                        progress: 7
                        subtitle: Downloaded 173 airings
                        title: Refreshing EPG
                        type: provider.epg.load
                        userID: 1
                      - uuid: e3c8fe07-675b-47d0-b957-8ab8c20d0d18
                        type: media.generate.credits
                        cancellable: false
                        userID: 1
                        title: Detecting Credits
                        subtitle: Firefly S01 E05
                        progress: -1
  /activities/{activityId}:
    delete:
      tags:
      - Activities
      security:
      - user_token:
        - admin
      summary: Cancel a running activity
      description: Cancel a running activity. Admins can cancel all activities but other users can only cancel their own
      operationId: activitiesDeleteActivity
      parameters:
      - in: path
        name: activityId
        schema:
          type: string
        example: d6199ba1-fb5e-4cae-bf17-1a5369c1cf1e
        description: The UUID of the activity to cancel.
        required: true
      responses:
        '200':
          $ref: '#/components/responses/200'
        '400':
          description: Activity is not cancellable
          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>
        '404':
          description: No activity with the provided id is found
          content:
            text/html:
              examples:
                notFound:
                  summary: Not Found
                  value: <html><head><title>Not Found</title></head><body><h1>404 Not Found</h1></body></html>
components:
  responses:
    '200':
      description: OK
      content:
        text/html:
          examples:
            ok:
              summary: OK
              value: ''
  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